如何获取foreign_key列的名称

我正在使用Rails 3,我有一个简单的模型

class Post has_many :comments end 

我正在做一些元编程,我需要知道comments表中foreign_key的名称。

在上面的例子中答案是

 post_id 

但是它可以是任何东西,因为用户可以进行配置。

假设您有权访问Post和Comment两个类,您将如何获得foreign_key的名称?

更新:经过一些测试,这就是我得到的。

 > User.reflections[:phone_numbers].instance_variable_get('@primary_key_name') => "user_id" 

以上解决方案适用于

 class User has_many :phone_numbers end 

我需要在comments表中知道foreign_key的名称。

你怎么会得到foreign_key的名字?

试试这个:

 . rails console Loading development environment (Rails 3.0.9) irb(main):001:0> "Post".foreign_key => "post_id" 

这是完整的文档 。 请让我知道这对你有没有用。 我没有在自定义外键上试过这个。 希望这可以帮助。