Получить имя ассоциации Active Record между двумя классами \ моделями - PullRequest
1 голос
/ 16 июня 2011

Я использую Ruby on Rails 3.0.7 и хотел бы узнать, как получить имя Active Record Association между двумя классами \ моделями.

То есть у меня две модели

class User < ActiveRecord::Base
  has_many :accounts
end

class Account < ActiveRecord::Base
  belongs_to :users
end

и я хотел бы получить (во время выполнения) их имя ассоциации, в данном случае accounts и users строки.

Возможно ли это? Если так, как я могу это сделать?


UPDATE

Если у меня есть больше операторов связи в классах User и Account (см. Пример ниже), как я могу получить точно User Account имя ассоциации?

class User < ActiveRecord::Base
  has_many :accounts
  has_many :articles
  has_many :comments
end

class Account < ActiveRecord::Base
  belongs_to :users
  has_many :articles
  belongs_to :authorization
end

1 Ответ

2 голосов
/ 16 июня 2011

?

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"
...