表单助手不会使用继承对象呈现复选框字段

时间:2013-10-04 00:31:36

标签: forms inheritance activerecord checkbox ruby-on-rails-4

问题:

我想使用表单助手构建一个带有复选框的表单。 我的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时,表单助手可以正常工作!我是否错过了必要的东西?

0 个答案:

没有答案