rails 3.0.5与nil变量的问题!

时间:2011-04-02 22:21:53

标签: ruby-on-rails-3

我的部分名称中有一个变量。如果我这样做:

<% if title.nil? %>
  # stuff here
<% end %>

然后我得到一个错误,该标题不是已知的变量或方法!有什么问题?

2 个答案:

答案 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 %>