我创建了一个名为Discussion的非常简单的模型,其中一列是一个名为resolved的布尔值。这个想法是,一旦讨论项目被解决,该值就被设置为真。
在编辑表单上,我尝试根据该字段的值输入一些逻辑。
<%= 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非常陌生,所以我确定无论问题是什么,修复起来都很简单,但我还是不明白。感谢。
答案 0 :(得分:3)
因为d代表表单构建器的实例,所以需要
<% if @discussion.resolved %>
如果在ActiveRecord中将resolve表示为“boolean”。
答案 1 :(得分:3)
每个布尔列都表示为谓词,因此您可以使用:
if @discussion.resolved?
...
end
答案 2 :(得分:1)
你要找的是解决了什么?方法。
<% if @discussion.resolved? %>
是为布尔列自动生成的。