Ошибка NoMethod от моего

Я получаю эту ошибку в своем браузере, когда я перехожу на страницу редактирования моей статьи:

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

У меня есть модель статьи с множеством тегов. Эта связь представлена ​​​​через другую модель, называемую тегами. Опять же, я получаю эту ошибку на моей странице редактирования моей модели/контроллера статьи. Мое приложение блоггера говорит, что в моем методе :tag_list нет ошибки метода, но она существует в моей модели статьи. Я явно что-то упускаю, и мне нужна помощь в восполнении этого пробела.


person andy4thehuynh    schedule 09.07.2013    source источник
comment
Это поможет, если вы добавите attr_reader :tag_list в свою модель?   -  person Rebitzele    schedule 09.07.2013
comment
святое дерьмо, которое сработало. реквизит для вас. если вы хотите объяснить, почему attr_reader :tag_list работает как ответ, я бы хотел поставить вам большой палец вверх!   -  person andy4thehuynh    schedule 09.07.2013
comment
Конечно, я добавил объяснение. Дайте мне знать, если это имеет смысл.   -  person Rebitzele    schedule 09.07.2013


Ответы (1)


Вам нужно будет добавить

   attr_reader :tag_list

к вашей модели.

При работе с элементами формы Rails ожидает, что каждый элемент будет соответствовать атрибуту модели. В вашем случае вы создаете виртуальный атрибут, но для этого требуются обычные геттеры и сеттеры. Вы уже предоставили сеттер, а attr_reader предоставит геттер.

person Rebitzele    schedule 09.07.2013