【问题标题】:Rails, refer to an association by a custom, unique fieldRails,通过自定义的唯一字段引用关联
【发布时间】:2018-08-29 11:12:26
【问题描述】:

我有一个带有 uuid 列的 Person 对象。每个人都有_许多博客,每个博客都属于_一个人。

我希望 blog.person_id 返回 Person.UUID,并希望 blog.person 返回 person 对象。 有没有办法做到这一点不让 Person 的主键成为自己的 UUID?

【问题讨论】:

    标签: ruby-on-rails postgresql rails-activerecord


    【解决方案1】:

    使用primary_key 选项提及列名。

    has_many blogs, primary_key: "uuid"
    

    has_many options:

    :primary_key

    指定要用作关联主键的列的名称。默认为id。

    【讨论】:

    • 那么,如果 Person 的主键不是它自己的 UUID,就没有办法做到这一点?我只是问,因为我知道这种方法,但我宁愿将 Person id 保留为 ID 并更改博客以专门引用 UUID。
    • @JapanRob 你误会了。您正在为这个关联设置primary_key,您的主主键仍然是id。只有当您调用person.blogs 和blog.person 时,才会在person.uuid 和blogs.id 之间进行连接
    • 为了使反向关联起作用,我还必须在 belongs_to 端指定 primary_key: UUID。非常非常感谢你。回答赞成并接受!
    • @JapanRob 啊,我明白了。我错过了包括在内。很高兴你发现了这一点。
    猜你喜欢
    • 2018-02-04
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多