使用Rails 3.2,有一种方法可以找出列是否是其他模型的参考列?
我不想在名称中依赖“_id”字符串搜索。
感谢。
更新:
我需要遍历所有列并在引用列中进行特殊处理,例如:
result = Hash.new
self.attribute_names.each do |name|
if self[name]
result[name] = self[name]
if name is reference column
insert xxx_description (from the other model) in hash.
end
end
end
我将把这个哈希作为json返回给客户端。
{name:'joseph',sector_id:2,sector_name:'backend'...}
其中sector_name是person.sector.name ...
感谢。
答案 0 :(得分:2)
如果您不知道关联的名称,则使用替代方法:
Post.reflect_on_all_associations(:belongs_to).map &:foreign_key
# => ['author_id','category_id']
答案 1 :(得分:0)
请参阅http://api.rubyonrails.org/classes/ActiveRecord/Reflection/ClassMethods.html
Post.reflections[:comments].primary_key_name # => "message_id"