1

使用 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 返回给客户端。

{名称:“约瑟夫”,扇区ID:2,扇区名称:“后端”...}

其中扇区名称是 person.sector.name ...

谢谢。

4

2 回答 2

3

如果您不知道关联的名称,则另一种方法:

Post.reflect_on_all_associations(:belongs_to).map &:foreign_key 
# => ['author_id','category_id']
于 2013-03-08T12:31:54.950 回答
0

http://api.rubyonrails.org/classes/ActiveRecord/Reflection/ClassMethods.html

Post.reflections[:comments].primary_key_name # => "message_id"

如何通过反射获得活动记录关联

于 2013-03-08T12:23:35.520 回答