检索两个类\ models之间的Active Record Association名称

时间:2011-06-16 12:09:50

标签: ruby-on-rails ruby ruby-on-rails-3 class associations

我正在使用Ruby on Rails 3.0.7,我想知道如何在两个类\ models之间检索 Active Record Association 名称。

也就是说,我有两个模型

class User < ActiveRecord::Base
  has_many :accounts
end

class Account < ActiveRecord::Base
  belongs_to :users
end

我希望检索(在运行时)他们的关联名称,在这种情况下是accountsusers字符串。

有可能吗?如果是这样,我该怎么做?


更新

如果我在UserAccount类中有更多关联语句(请参阅下面的示例),我该如何检索完全 User {{1关联名称?

Account

1 个答案:

答案 0 :(得分:2)

User.reflect_on_all_associations.each do |assoc|
  puts "#{assoc.macro} #{assoc.name}"
end
#=> "has_many accounts"

<强> UPD

User.reflect_on_all_associations.select{|a| a.class_name == "Account"}.each do |assoc|
  puts "#{assoc.macro} #{assoc.name}"
end
#=> "has_many accounts"