2014-01-07 143 views
0

我試圖有條件地顯示基於數據庫中的某些字段的鏈接,但是,根據IF語句和鏈接顯示無論如何都不設置。Rails IF語句不起作用

<% if :mobile.present? && :mobile_verified != true %> 
    <%= link_to "(Verify Mobile)", :controller => 'users', :action => 'resend_verification', :method=> :post %> 
<% end %> 

有什麼不正確?

+1

這些都是符號,不是變量。你可能想刪除':'。也許你打算用'@'來加前綴。 – numbers1311407

+0

非常感謝!爲什麼我不能將您的解決方案標記爲答案? – Bill

+0

b/c它是一個評論:-) – numbers1311407

回答

1

那些是符號,而不是變量。您可能想要刪除:。也許你打算在它們前加上@,如果它們是實例變量,情況就會如此。

1

當您使用:時,它聲明ruby symbol。並且當您以變量@開頭時,表示它們是instance variables

在一般情況下,我們在控制器中定義實例變量,然後在視圖文件中使用它們。所以我想你的代碼應該是這樣的:

<% if @mobile.present? && @mobile_verified != true %> 
    <%= link_to "(Verify Mobile)", :controller => 'users', :action => 'resend_verification', :method=> :post %> 
<% end %> 

不要忘了在上面的代碼中使用它們之前,設置這些變量@mobile@mobile_verified

+0

_if @ mobile.present?_部分似乎沒有工作......它在控制器中被定義爲_ @ mobile = @ user.mobile_ ... @ user_被定義爲_ @ user = current_user_ – Bill

+0

'@ mobile.present?'出現了什麼錯誤。 或從控制檯粘貼堆棧跟蹤會做。 – Hardik

+0

據我所知,沒有錯誤信息,只是沒有鏈接和條件得到滿足,http://pastebin.com/0GzSgH8r – Bill