gpt4 book ai didi

ruby-on-rails - acts_as_taggable_on 的奇怪行为

转载 作者:行者123 更新时间:2023-12-04 03:37:05 26 4
gpt4 key购买 nike

编辑

Github 上的说明指导您使用 gemcutter 源代码。目前,这会安装 2.0.5 版,其中包含我在下面详述的错误。

@Vlad Zloteanu 证明 1.0.5 不包含该错误。我也尝试过使用 1.0.5 并确认该错误存在于此版本中。人们在 acts_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">]

helloworld 标签在哪里?神奇的是,如果我直接修改数据库,将 tagger_idtagger_type 设置为 NULL,就会显示这两个缺失的标签。我怀疑我的 User 模型有问题?给了什么?


编辑

更陌生:

Post.tagged_with("hello")
#=> #<Post id: 1, ...>

它找到了帖子!所以它可以从数据库中读取标签!为什么它没有显示 Post#tagsPost#tag_list

最佳答案

我使用完全相同的类重新创建了您的项目。

这是我的结果:

>> Post.create
=> #<Post id: 1, created_at: "2010-05-18 09:16:36", updated_at: "2010-05-18 09:16:36">
>> p = Post.first
=> #<Post id: 1, created_at: "2010-05-18 09:16:36", updated_at: "2010-05-18 09:16:36">
>> 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">]
>> User.create
=> #<User id: 1, created_at: "2010-05-18 09:17:02", updated_at: "2010-05-18 09:17:02">
>> u = User.first
=> #<User id: 1, created_at: "2010-05-18 09:17:02", updated_at: "2010-05-18 09:17:02">
>> 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, created_at: "2010-05-18 09:16:36", updated_at: "2010-05-18 09:16:36">
>> p.tags
=> [#<Tag id: 1, name: "foo">, #<Tag id: 2, name: "bar">, #<Tag id: 3, name: "hello">, #<Tag id: 4, name: "world">]

因此,我无法复制您的错误。我已经用 mysql 和 sqlite 试过了。

这是来 self 的 env 文件:

config.gem "mbleigh-acts-as-taggable-on", :source => "http://gems.github.com", :lib => "acts-as-taggable-on

这是我的 gem 版本:

gem list | grep taggable
mbleigh-acts-as-taggable-on (1.0.5)

你能发布你的gem版本吗?你能尝试升级你的 gem 吗?你使用什么数据库?

如果它不起作用,您是否也可以发布 tail -f log/development.log 的输出?

编辑:我正在使用 Rails 2.3.5

关于ruby-on-rails - acts_as_taggable_on 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2807770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com