2011-04-02 23 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