现在我有以下内容:
<% if !@thread.nil? && @thread.name == 'X' || @thread.name == 'Y' %>
....
这里的问题是我相信无论是否@@thread.nil?,仍然会调用@ thread.name导致错误。
写这个的正确方法是这样的:
<% if !@thread.nil? && @thread.name == ('X' || 'Y') %>
列表中包含哪些类型?对于thread.name?
由于
答案 0 :(得分:7)
if !@thread.nil? && ['x','Y'].include?(@thread.name)
答案 1 :(得分:4)
if @thread.present? and ['X', 'Y'].include?(@thread.name)
在#present?
上修改:More info。
答案 2 :(得分:3)
try方法可以使这段代码更清晰。看一下这个http://everydayrails.com/2011/04/28/rails-try-method.html。
答案 3 :(得分:3)
['x', 'Y'].include?(@thread.try(:name))
或
['x', 'Y'].include? @thread.try :name