#ruby-on-rails #ruby
#ruby-on-rails #ruby
Вопрос:
Как я могу получить все отношения для модели. Т.е. у меня есть User
модель:
class User < AR::Base
has_many :messages, :foreign_key => 'author'
has_many :posts
belongs_to :role
end
Итак, как я могу узнать, какие отношения есть у User
модели? И foreign_keys, если они представлены.
Ответ №1:
User.reflect_on_all_associations.each do |assoc|
puts "#{assoc.macro} #{assoc.name}"
end
Выходные данные:
has_many messages
has_many posts
belongs_to role
reflect_on_all_associations
Метод возвращает массив объектов макроотражения. Они также поддерживают другие методы для запроса хэша параметров каждой ассоциации и других полезных вещей.