Ruby元编程在给定模型上生成ActiveRecord关联?

时间:2012-07-30 19:04:16

标签: ruby-on-rails ruby activerecord gem metaprogramming

我正在将我的应用程序的一部分提取到Gem中,这涉及创建一些新的ActiveRecord模型。目前这些模型看起来像这样:

Class Wordcount < ActiveRecord::Base
  belongs_to :keyword
  belongs_to :article
end

Class Keyword < ActiveRecord::Base
  has_many :wordcounts
  has_many :articles, :through => :wordcounts
end

gem将使用字符串或文本字段挂钩到任何ActiveRecord模型,而不仅仅是我在此代码来自的现有Rails应用程序中定义的Article模型。

我需要做什么才能根据宝石的功能应用的哪个模型生成相关的AR关联?我希望最终得到:

has_my_gem_functionality :on => [:field1, :field2, ...]

其余部分安全地封装在宝石中。

我假设我也必须对迁移进行元编程。我觉得我要做的事情相对简单,只是在我的舒适区域稍微偏远。

1 个答案:

答案 0 :(得分:1)

使用来源,卢克! :)

看看其他一些做类似事情的宝石的来源。例如: