我目前正在使用以下内容:
20: <p>Status: <%= @contact.try(:status) unless @contact.nil? || @contac
t.status.nil?%></p>
但是,我仍然会收到以下错误:
ActionView::TemplateError (undefined method `status' for nil:NilClass) on line #
20 of app/views/contacts/show.html.erb:
有更好的方法可以检查吗?
这似乎是一个常见的问题 - 它在开发中运行良好,但我没有在生产中找到它....
答案 0 :(得分:8)
使用Rails实用程序方法try
<%= @contact.try(:status) %>
答案 1 :(得分:1)
也许
<%= @contact.status unless @contact %>
或
<%= @contact && @contact.status %>
答案 2 :(得分:0)
<%= @contact.status unless @contact.nil? || @contact.status.nil? %>
答案 3 :(得分:0)
试试这个
<%= @contact.status unless @contact.status.nil? unless @contact.nil? %>
答案 4 :(得分:-1)
为什么不更改getStatus方法或添加清除联系人对象中数据的getStatusUI方法?这样你就可以删除html中的一些混乱。