我在 rails 2.3.8 上使用 ruby,并且我已经安装了acts_as_taggable_on 插件来标记公告,一切都很好,直到我发现我没有简单而整洁的方法来获取所有带有某个 id 标记的公告(唯一的方法我发现是 Tag.tagged_with(tag_name))。
因此,我只想将插件的标记模型与我创建的(ActiveRecord 的)标记模型相关联,表示插件中包含的标记表。
有可能这样做吗?
我在 rails 2.3.8 上使用 ruby,并且我已经安装了acts_as_taggable_on 插件来标记公告,一切都很好,直到我发现我没有简单而整洁的方法来获取所有带有某个 id 标记的公告(唯一的方法我发现是 Tag.tagged_with(tag_name))。
因此,我只想将插件的标记模型与我创建的(ActiveRecord 的)标记模型相关联,表示插件中包含的标记表。
有可能这样做吗?
如果它们都是 ActiveRecord 模型,则应该是可能的。
要在插件模型中定义关系,您必须在库中的某处进行一些元编程。您可以先将其粘贴在 environment.rb 文件的末尾进行实验。
ModelName.class_eval do
has_many :announcements
end
这尤其可能有效也可能无效,但这是基本思想。
如果元编程被证明太复杂,您总是可以这样做(在这里对架构进行假设,我已经有几年没有使用过 AAT 了):
Taggings.find_by_tag_id_and_user_id(@tag.id, @user.id, :include => :user ).map{ |t| t.user) }