0

問題:

フォーム ヘルパーを使用して、チェックボックス付きのフォームを作成したいと考えています。私のブログ投稿には、「承認済み」というブール属性があります。このモデルは、ActiveRecord::Base ではなく、私の別のモデル (Post) から継承しています。この構成では、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 %>

ブログ投稿コントローラー:

  # GET /blog_posts/new
  def new
    @blog_post = BlogPost.new
  end

投稿モデル:

class Post < ActiveRecord::Base
end

ブログ投稿モデル:

class BlogPost < Post
end

「承認済み」は、BlogPost クラスの属性です。Post クラスには、BlogPost クラスで使用したい追加の属性がいくつかあります。AnswerPost (< Post) クラスもあります。

私が試したこと:

check_boxメソッドのドキュメントは私を混乱させ、check_box_tag ヘルパーも機能しません。移行も問題ありません。「承認済み」パラメーターは許可されています。

params.require(:blog_post).permit(:approved)

手掛かり:

私にとって奇妙なことは、 BlogPost が Post の代わりに ActiveRecord::Base を継承すると、フォーム ヘルパーが機能することです。ここで重要なことを見逃しましたか?

4

0 に答える 0