2011-07-18 57 views
0

我創建了一個名爲Discussion的非常簡單的模型,其中一個列是一個名爲resolved的布爾值。這個想法是,一旦討論項目被解決,價值被設置爲真。Rails:未定義的方法錯誤無法用attr_accessor修復

在編輯窗體上,我試圖根據該字段的值放入一些邏輯。

<%= form_for(@discussion) do |d| %> 
    ... 
<% if d.resolved == "true" %> 
    <p>The discussion is resolved</p> 
<% else %> 
    <p>The discussion is not resolved</p> 
<% end %> 
<% end %> 

不過,我收到一條錯誤消息

undefined method `resolved' for #<ActionView::Helpers::FormBuilder:0x00000101674678> 

我嘗試添加一個attr_accessor線到我的模型,但是這並沒有爲我做任何事情,無論是。我不知道我需要做些什麼來解決這個問題。我對rails很新,所以我確信不管問題是什麼,修復它可能都很簡單,但我只是不明白。謝謝。

回答

3

因爲d代表表單生成器的實例,你想

<% if @discussion.resolved %> 

如果解決被表示爲ActiveRecord的一個「布爾」。

+0

非常感謝。我會補充說下面的mikhailov的答案對我也有幫助,因爲我不知道那個?函數自動爲布爾列生成。 –

3

每一個布爾值列代表作謂語,所以你可以使用:

if @discussion.resolved? 
... 
end 
1

什麼你要找的是解決了嗎?方法。

<% if @discussion.resolved? %> 

這是自動生成的布爾列。

相關問題