编辑
Github 上的说明指导您使用 gemcutter 源代码。目前,这安装了 2.0.5 版,其中包括我在下面详述的错误。
@Vlad Zloteanu 证明 1.0.5 不包含该错误。我也尝试过 1.0.5 并确认此版本中不存在该错误。人们在 2.x 上为acts_as_taggable_on 和拥有标签而苦苦挣扎,回滚并等待修复..
出于某种原因,当指定标记器时,标记不会显示在可标记对象上。
测试帖子
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
标签在哪里?神奇的是,如果我直接将数据库修改为 settagger_id
和tagger_type
to NULL
,两个缺失的标签就会出现。我怀疑我的User
模型有问题?是什么赋予了?
编辑
更陌生:
Post.tagged_with("hello")
#=> #<Post id: 1, ...>
它找到了帖子!所以它可以从数据库中读取标签!为什么它没有出现Post#tags
or Post#tag_list
?