列出活动记录模型的引用列

时间:2013-03-08 11:04:29

标签: ruby-on-rails ruby-on-rails-3

使用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 ...

感谢。

2 个答案:

答案 0 :(得分:2)

如果您不知道关联的名称,则使用替代方法:

Post.reflect_on_all_associations(:belongs_to).map &:foreign_key 
# => ['author_id','category_id']

答案 1 :(得分:0)