Редактировать
Инструкции на Github инструктируют вас использовать источник драгоценного камня для драгоценного камня. В настоящее время устанавливается версия 2.0.5, в которой есть ошибка, о которой я подробно рассказал ниже.
@ Влад Злотяну демонстрирует, что 1.0.5 не включает ошибку. Я также пробовал с 1.0.5 и подтверждаю, что ошибка не существует в этой версии. Люди, борющиеся с act_as_taggable_on и владеющие тегами на 2.x, откатятся и ждут исправления ..
По какой-то причине теги не отображаются на тегируемом объекте, когда указан теггер.
тестирование поста
class Post < ActiveRecord::Base
acts_as_taggable_on :tags
belongs_to :user
end
>> p = Post.first
=> #<Post id: 1, ...>
>> p.is_taggable?
=> true
>> p.tag_list = "foo, bar"
=> "foo, bar"
>> p.save
=> true
>> p.tags
=> [#<Tag id: 1, name: "foo">, #<Tag id: 2, name: "bar">]
тестирование пользователя
class User < ActiveRecord::Base
acts_as_tagger
has_many :posts
end
>> u = User.first
=> #<User id: 1, ...>
>> u.is_tagger?
=> true
>> u.tag(p, :with => "hello, world", :on => :tags)
=> true
>> u.owned_tags
=> [#<Tag id: 3, name: "hello">, #<Tag id: 4, name: "world">]
обновить сообщение
>> p = Post.first
=> #<Post id: 1 ...>
>> p.tags
=> [#<Tag id: 2, name: "bar">, #<Tag id: 1, name: "foo">]
Где теги hello
и world
? Чудесным образом, если я изменю базу данных напрямую, установив tagger_id
и tagger_type
на NULL
, появятся два отсутствующих тега. Я подозреваю, что что-то не так с моей User
моделью? Что дает?
EDIT
Даже незнакомец:
Post.tagged_with("hello")
#=> #<Post id: 1, ...>
находит почту! Таким образом, он может прочитать тег из базы данных! Почему это не появляется с Post#tags
или Post#tag_list
?