2011-04-02 65 views
0

我在我的部分称为标题中有一个变量。如果我这样做:rails 3.0.5问题,无变量!

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

然后我得到一个错误,标题在不是已知的变量或方法!哪里不对?

回答

2

如果你的变量没有定义,那么你会得到这个错误。

在一个局部变量可以通过将其作为一个局部变量定义:

<%= 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 %> 
+0

在Rails 3中,您可以执行'<%= render'my_partial':title =>'My Title'%>'而不是回答中提到的较长变体。 – Zabba 2011-04-03 00:50:02

2

你的变量在哪里定义?如果它在控制器中设置,它应该是一个实例变量,前缀为@,如@title。 如果title实际上是在您的部分中声明的,则不应该有任何问题。

+0

标题是不是宣布在所有... uptill轨道3.0.3如果未声明的代码工作.. 。 – Amit 2011-04-02 22:33:56