开发者

How can I check for undefined method for nilClass before I error out?

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜