Model.reflections
дает информацию об ассоциациях модели.Это Hash
, указанный на имени ассоциации.например,
Post.reflections.keys # => ["comments"]
Вот пример некоторых сведений, к которым можно получить доступ:
Post.reflections["comments"].table_name # => "comments"
Post.reflections["comments"].macro # => :has_many
Post.reflections["comments"].foreign_key # => "message_id"
Примечание: этот ответ былобновлен до Rails 4.2, основываясь на ответе MCB и комментариях ниже.В более ранних версиях Rails доступ к отражению foreign_key
осуществлялся с использованием primary_key_name
, а ключи для отражений могут быть символами, а не строками, в зависимости от того, как была определена ассоциация, например, :comments
вместо "comments"
.