我想使用表单助手构建一个带有复选框的表单。 我的BlogPost有一个名为'approved'的布尔属性。这个模型继承自我的另一个模型(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
BlogPost模型:
class BlogPost < Post
end
'approved'是BlogPost类的一个属性。 Post类有一些我想在BlogPost类中使用的附加属性。还有一个AnswerPost(&lt; Post)类。
check_box方法的文档让我感到困惑,check_box_tag助手也不适用于我。迁移也很好。 允许使用“已批准”的参数:
params.require(:blog_post).permit(:approved)
对我来说奇怪的是: 当BlogPost继承ActiveRecord :: Base而不是Post时,表单助手可以正常工作!我是否错过了必要的东西?