在我的部分中有一个叫做title的变量。如果我这样做了:
<% if title.nil? %>
  # stuff here
<% end %>然后我得到一个错误,标题不是一个已知的变量或方法!怎么啦?
发布于 2011-04-03 07:04:49
如果你的变量没有定义,那么你会得到这个错误。
partial中的变量可以通过将其作为局部变量传递来定义:
<%= render :partial => 'my_partial', :locals => { :title => 'My Title' } %>或者在partial中定义它:
<% title = nil %>
<% if title.nil? %>
  # Do stuff here.
<% end %>您还可以在partial中使用实例变量,比如@title,它们不需要定义,因为它们总是缺省为nil。
如果要检查是否定义了变量,请执行以下操作:
<% if defined?(title) %>
  # Do stuff here.
<% end %>发布于 2011-04-03 06:24:24
你的变量在哪里定义的?如果它是在控制器中设置的,那么它应该是一个实例变量,它会像@title一样以@作为前缀。如果title实际上是在你的partial中声明的,你应该不会有任何问题。
https://stackoverflow.com/questions/5526288
复制相似问题