2010-01-07 7 views
29

Gibt es eine Möglichkeit herauszufinden, welche Assoziationen ein Modell hat? Nehmen Sie diese zwei Modelle:rails-Methode, um den Assoziationsnamen eines Modells zu erhalten

class Comment < ActiveRecord::Base 
    belongs_to :commentable 
end 

class Post < ActiveRecord::Base 
    has_many :comments 
    belongs_to :user 
end 

Ich bin auf der Suche nach so etwas wie:

Post.has_many #=> ['comments', ...] 
Post.belongs_to # => ['user'] 
Comment.belongs_to # => ['commentable'] 

Antwort

65

Sie suchen nach reflect_on_all_associations suchen.

Also kurz gesagt:

Post.reflect_on_all_associations(:has_many) 

... wird ein Array geben (von Objekt mit Attributen wie name, etc.) aller has_many Verbände.

+1

Perfekt! Vielen Dank. – DiegoSalazar

Verwandte Themen