0

问题:

我想使用表单助手构建一个带有复选框的表单。我的 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 时,表单助手工作!我在这里错过了什么重要的东西吗?

4

0 回答 0