问题:
我想使用表单助手构建一个带有复选框的表单。我的 BlogPost 有一个名为“已批准”的布尔属性。这个模型继承自我的另一个模型(Post)而不是 ActiveRecord::Base。在这个配置中,我得到一个 NoMethodError。
文件:
带复选框的表单:
<%= form_for @blog_post do |f| %>
<div class="field">
<!-- throws undefined method `approved' for #<BlogPost:0x00000002600d40> -->
<%= f.check_box :approved %>**
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
BlogPost 控制器:
# GET /blog_posts/new
def new
@blog_post = BlogPost.new
end
岗位型号:
class Post < ActiveRecord::Base
end
博文模型:
class BlogPost < Post
end
'approved' 是 BlogPost 类的一个属性。Post 类有一些我想在 BlogPost 类中使用的附加属性。还有一个 AnswerPost (< Post) 类。
我尝试了什么:
check_box方法的文档让我感到困惑,而 check_box_tag 助手也不适用于我。移民也不错。'approved' 参数是允许的:
params.require(:blog_post).permit(:approved)
线索:
对我来说奇怪的是: 当 BlogPost 继承自 ActiveRecord::Base 而不是 Post 时,表单助手工作!我在这里错过了什么重要的东西吗?