0

記事の「編集」ページに移動すると、ブラウザに次のエラーが表示されます。

blogger/app/views/articles/_form.html.erb

undefined method `tag_list' for #<Article:0x007ffb52130678>

抽出されたソース (20 行目あたり):

18:     <p>
19:         <%= f.label :tag_list %><br />
20:         <%= f.text_field :tag_list %>
21:     </p>

私の記事モデル:

class Article < ActiveRecord::Base
  attr_accessible :title, :body, :tag_list, :image
  has_many :comments
  has_many :taggings
  has_many :tags, through: :taggings
  has_attached_file :image

     def tag_list=(tags_string)
        tag_names = tags_string.split(",").collect{ |s| s.strip.downcase }.uniq
        new_or_found_tags = tag_names.collect { |name| Tag.find_or_create_by_name(name) }
        self.tags = new_or_found_tags
     end
end

多くのタグを持つ Article モデルがあります。この関係は、タグ付けと呼ばれる別のモデルによって表されます。繰り返しますが、Article モデル/コントローラーの編集ページでこのエラーが発生します。私のブロガー アプリは、私の :tag_list メソッドにメソッド エラーはないと言っていますが、私の記事モデルには存在します。私は明らかに何かが欠けており、このギャップを埋める助けが必要です.

4

1 に答える 1

1

追加する必要があります

   attr_reader :tag_list

あなたのモデルに。

フォーム要素を扱う場合、Rails は各要素がモデル属性に対応していると想定します。あなたの場合、仮想属性を作成していますが、そのためには通常のゲッターとセッターが必要です。すでにセッターを提供しており、attr_reader がゲッターを提供します。

于 2013-07-09T19:36:52.197 に答える