是否可以在ActiveRecord模型和插件模型之间建立关系?

时间:2010-06-18 20:28:12

标签: ruby-on-rails acts-as-taggable-on

我在rails 2.3.8上使用ruby,并且我已经安装了acts_as_taggable_on插件来标记公告,一切都很好,直到我发现我没有简单而干净的方式来获取标记有特定ID的所有公告(我找到的唯一方法是Tag.tagged_with(tag_name))。

所以,我只是想将插件的Tag模型与我创建的标记模型(ActiveRecord)相关联,表示插件中包含的标记表。

有可能吗?

1 个答案:

答案 0 :(得分:0)

如果它们都是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)}