I am currently using the following:
20: <p>Status: <%= @contact.try(:status) unless @contact.nil? || @contac
t.status.nil?%></p>
However, I still get the following error:
ActionView::TemplateError (undefined method `status' for nil:NilClass) on line #
20 of app/views/contacts/show.html.erb:
Is there a better way to be checking?
This seems to be a common problem -- it works fine in dev but I开发者_高级运维 am not finding it in production....
Use the Rails utility method try
<%= @contact.try(:status) %>
Maybe
<%= @contact.status unless @contact %>
or
<%= @contact && @contact.status %>
<%= @contact.status unless @contact.nil? || @contact.status.nil? %>
Try this
<%= @contact.status unless @contact.status.nil? unless @contact.nil? %>
Why not change the getStatus method or add an getStatusUI method that cleans up the data in the contact object? This way you can remove some of the clutter in your html.
精彩评论