gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中使用 acts_as_taggable_on 声明标签别名?

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:55 25 4
gpt4 key购买 nike

acts_as_taggable_on 实现效果很好,但我还需要声明标签别名。

我找到了一个声称这样做的插件,acts_as_taggable_with_aliases , 但最后一次提交是在 2009 年并且不在 gem 存储库中,所以我认为该项目现在已经死了。

有什么办法可以实现吗?

最佳答案

也许你可以创建自己的模型来支持这个(以及你想要的任何其他东西)......

我认为您可以通过执行以下操作来实现:

class Tag < ActiveRecord::Base
end

class Tagging < ActiveRecord::Base
validates_presence_of :tag_id
belongs_to :tag
belongs_to :taggable, :polymorphic => true
end

class ModelIWantToBeTagged < ActiveRecord::Base
include ModelTagging
has_many :taggings, :as => :taggable
end

module ModelTagging
def add_tag(tag_name)
tag = Tag.find_or_create_by_tag(tag_name)
tagging = Tagging.new
tagging.taggable_id = self.id
tagging.taggable_type = get_class_name
tagging.tag_id = tag.id
tagging.save!
end

def remove_tag(tag_name)
tag = Tag.find_by_tag(tag_name)
Tagging.where(:tag_id => tag).delete_all
end

private
def get_class_name
self.class.name
end
end

这样您就可以将任何行为和数据添加到您的标签中。

希望对你有帮助!

关于ruby-on-rails - 如何在 Rails 中使用 acts_as_taggable_on 声明标签别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032912/

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