From: zig Date: 2007-03-04T10:35:08+09:00 Subject: detecting associations in rails In Rails, is there a way to list at runtime the associations (has_one, belongs_to, etc) made for an ActiveRecord::Base model? I would like to make my views be a little smarter about these associations. Currently, the scaffolding iterates through all content_columns, which excludes the columns used for the associations, since they end in _id. Iterating through all columns, instead of just content_columns, is not much better, because I don't want to see the foreign_key either. What I'd really like is something along the lines of this: <% for column in ModelA.columns %> <% if ModelA.content_columns.include?(column) then column_output = @union.send(column.name) elsif column.name =~ /_id/ && ModelA.associations.map {|assoc| assoc.foreign_key}.include?(column.name) then column_output = @union.send(ModelA.associations[:foreign_key => column_name]) end %>

<%= column.human_name %>: <%=h column_output %>

<% end %> OK, my logic above isn't perfect, needs some cleaning up, but whatever. The point is, I need a method like associations, which can tell me what associations a model has, what their foreign keys are, etc. Is there any way to access that information?