【发布时间】:2015-07-10 21:19:33
【问题描述】:
我有三个模型
class Mar < ActiveRecord::Base
belongs_to :baz
belongs_to :koo
end
class Baz < ActiveRecord::Base
has_many :other_mars, :class_name => "Mar", :foreign_key => :b
end
class Koo < ActiveRecord::Base
has_many :mars
has_many :bazs, :through => :mars, :source => :baz
end
我想从模型 Baz 中获取 has_many 名称作为字符串。在这个例子中是“other_mars”
该解决方案必须适用于传递给它的 class_name 的任何类似 has_many 关系。
我正在使用 Rails 3.2 和 ruby 1.9
【问题讨论】:
-
此类问题中的常见问题 - 你需要它做什么?
-
我需要它作为搜索 gem 的一部分。它通过关联很好地搜索 has_many =>,但是一旦声明的名称与 class_name 不同(如此处的“other_mars”),它就会中断。如果我能得到那个 has_many 的名字,我的生活会很轻松 :D
-
你是说洗劫之类的?
标签: ruby-on-rails ruby activerecord