如何获取foreign_key列的名称

2024-04-16

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

class Post
  has_many :comments
end

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

在上面的例子中,答案是

post_id

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

假设您可以访问 Post 和 Comment 类,您将如何获取foreign_key 的名称?

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

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

以上解决方案适用于

class User
  has_many :phone_numbers
end

我需要知道注释表中foreign_key的名称。

你如何获得foreign_key的名称?

尝试这个:

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

这是完整的文档 http://apidock.com/rails/ActiveSupport/Inflector/foreign_key。请让我知道这对你有没有用。不过,我还没有在自定义外键上尝试过这个。希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取foreign_key列的名称 的相关文章

随机推荐

  • Meteor.http.call 不允许 Access-Control-Allow-Origin

    当我尝试使用 Meteor 调用外部服务器进行 JSON 查询时Meteor http call GET 方法我收到错误消息 Access Control Allow Origin不允许 如何允许我的 Meteor 应用程序向其他服务器发出
  • Rails:最后以空值排序

    在我的 Rails 应用程序中 我多次遇到一个问题 我想知道其他人是如何解决的 我有某些记录 其中值是可选的 因此某些记录具有值 而某些记录对该列为空 如果我在某些数据库上按该列排序 则空值首先排序 而在某些数据库上 空值最后排序 例如 我
  • 使用假 DbContext 和 Autofixture 以及 Moq 进行测试

    所以请遵循这个例子 example http romiller com 2012 02 14 testing with a fake dbcontext 以及如何制作一个假的 DBContext 来测试我的测试 使用这个工作正常 Test
  • sqlite python 插入

    我以前问过类似的问题 这里是我想要实现的目标的详细解释 我有两个 sqlite 表table1 是标准表 具有服务器 id 状态等字段 table2 具有服务器 id 状态 数字 日志文件等字段 Table2 为空 Table1 有值 我正
  • 获取连接的mysql数据库名称(JDBC)

    如何从连接对象中获取数据库名称 try this ds DataSource new InitialContext lookup java comp env jdbc amger catch NamingException ne Conne
  • 使用 ZXing 和 ZBar 的 GS1 应用程序标识符数据中缺少 AIM 符号标识符

    我正在尝试验证使用 ZXing 或 ZBar 扫描的 GS1 条形码 这GS1 一般规格 http www gs1 org docs gsmp barcodes GS1 General Specifications pdf7 8 中说 GS
  • 验证:如何检查特定错误

    我知道如何检查属性是否有错误 post errors title any 是否可以检查哪个验证失败 例如 唯一性 最近我遇到了一种情况 我需要同样的东西 用户可以从一个表单一次添加 编辑多个记录 由于在验证时并非所有记录都已写入数据库 我无
  • iOS 应用程序因 [UIFeedbackGenerator _autoDeactivate] 崩溃

    我收到了来自 Crashlytics 的以下报告 我没有打电话 UIFeedbackGenerator autoDeactivate 我 也许某个图书馆正在这样做 我做了一些研究 但找不到任何有用的信息 有谁知道这个崩溃报告是什么意思 谢谢
  • 如何保证mongoDb中数据的完整性?

    我正在尝试从关系数据库 mysql 数据迁移到nosql mongoDb 但是我如何确保 mongodb 中的数据完整性 我发现我们无法在服务器端做到这一点 我应该在应用程序端使用什么来处理数据完整性 例如 我有两个表 user 和 tas
  • ActionBarActivity getSupportActionBar().hide() 抛出 NullPointerException

    Call if getSupportActionBar null getSupportActionBar hide 要不就 getActionBar 在 android support v7 app ActionBarActivity 我得
  • RSpec 失败:迁移后找不到表...?

    我有一个带有一个模型的裸轨 3 应用程序 使用生成rails g model User 我添加了一个工厂 使用factory girl rails Factory define user do f f email email protect
  • AngularJS 中的“命名空间”服务

    AngularJS 如何处理服务名称之间的冲突 例如 如果我声明了两个模块 每个模块都包含一个名为 foo 的服务 如果我想创建可重用模块或想避免与其他第三方模块发生冲突 命名空间 服务的好方法是什么 截至目前 AngularJS 不处理服
  • Android面向对象编程

    我正在使用 Eclipse 在 Android 中进行一些基本编程 我目前正在翻阅一本书并使用书中编写的一些示例代码 我注意到 在这本书中 迄今为止的所有示例都在主要活动中进行 我不认为这是很好的面向对象编程实践 因为我来自传统的 Java
  • Linux 与 Windows std::map 赋值构造函数(为什么有这样的差异?)

    我在 Linux Ubuntu 中编写的 C 应用程序中目睹了一些意外行为 我将构造一个带有参数的对象 然后使用赋值运算符将该对象的副本放入 std map 中 我写了一个简单的程序来演示这种情况 include
  • 是否只有当 Maven 中的特定配置文件处于活动状态时才可以使用代理?

    我想仅在特定配置文件处于活动状态时使用代理 为了实现这一点 我的猜测是参数化
  • 当我在 MATLAB 中循环绘图时如何给出不同的颜色?

    我有一些数据说 X 的大小为 100 2 该 X 由 10 个类别的数据组成 一组 10 个 现在我想查看每个类别的数据模式 为此 我需要为每个类别分配不同的颜色 我正在尝试循环而不是绘制 10 个不同的图 我尝试了以下 hold on f
  • vba 在非连续范围内循环

    我的行有一个不连续的范围 myRange 的示例地址 2 2 4 205 214 214 我想访问该范围内的特定行和列 我已经尝试过以下方法 获取范围内第2行第1列的值 myRange rows 2 Cells 1 Value 但是 这给了
  • 如何在类型方法中使用另一个类方法和 this 上下文?

    我想在 TypeScript 中进一步重写 JavaScript 方法 我很想在课堂上这样做 如下所示 export default class export default class GroupItemMetadataProvider1
  • 如何将await.WhenAny() 与GetAwaiter 扩展方法结合起来

    我想要await a button click 事件 为此创建了一个扩展GetAwaiter method public static class ButtonAwaiterExtensions public static ButtonAw
  • 如何获取foreign_key列的名称

    我正在使用 Rails 3 并且有一个简单的模型 class Post has many comments end 我正在做一些元编程 我需要知道注释表中的foreign key的名称 在上面的例子中 答案是 post id 然而它可以是任