我的部分名称中有一个变量。如果我这样做:
<% if title.nil? %>
# stuff here
<% end %>
然后我得到一个错误,该标题不是已知的变量或方法!有什么问题?
答案 0 :(得分:2)
您的变量在哪里定义?如果在控制器中设置它,它应该是一个实例变量,前面加@
,如@title
。
如果在您的部分中实际声明了title
,则不应该有任何问题。
答案 1 :(得分:2)
如果您的变量未定义,那么您将收到此错误。
部分中的变量可以通过将其作为局部变量传递来定义:
<%= render :partial => 'my_partial', :locals => { :title => 'My Title' } %>
或者通过在partial中定义它:
<% title = nil %>
<% if title.nil? %>
# Do stuff here.
<% end %>
您也可以在部分中使用实例变量,例如@title
,并且不需要定义它们,因为它们始终默认为nil。
如果要检查是否定义了变量,请执行以下操作:
<% if defined?(title) %>
# Do stuff here.
<% end %>