我在我的部分称为标题中有一个变量。如果我这样做:rails 3.0.5问题,无变量!
<% if title.nil? %>
# stuff here
<% end %>
然后我得到一个错误,标题在不是已知的变量或方法!哪里不对?
我在我的部分称为标题中有一个变量。如果我这样做:rails 3.0.5问题,无变量!
<% if title.nil? %>
# stuff here
<% end %>
然后我得到一个错误,标题在不是已知的变量或方法!哪里不对?
如果你的变量没有定义,那么你会得到这个错误。
在一个局部变量可以通过将其作为一个局部变量定义:
<%= render :partial => 'my_partial', :locals => { :title => 'My Title' } %>
或在局部定义它:
<% title = nil %>
<% if title.nil? %>
# Do stuff here.
<% end %>
您还可以在使用实例变量的部分,如@title
,并且它们不需要定义,因为它们总是默认为零。
如果你想检查您的变量定义,然后执行以下操作:
<% if defined?(title) %>
# Do stuff here.
<% end %>
你的变量在哪里定义?如果它在控制器中设置,它应该是一个实例变量,前缀为@
,如@title
。 如果title
实际上是在您的部分中声明的,则不应该有任何问题。
标题是不是宣布在所有... uptill轨道3.0.3如果未声明的代码工作.. 。 – Amit 2011-04-02 22:33:56
在Rails 3中,您可以执行'<%= render'my_partial':title =>'My Title'%>'而不是回答中提到的较长变体。 – Zabba 2011-04-03 00:50:02