在Ruby on Rails中,如何创建除主键以外的外键引用字段的关系?如何在迁移或模型课中做到这一点?我正在使用MySQL。Ruby on Rails - 主键以外的参考索引的外键
感谢,
编辑:比方说,我有两个表A和B在B中,我有一个域名为名称,在一个我有b_name。如何指定
在Ruby on Rails中,如何创建除主键以外的外键引用字段的关系?如何在迁移或模型课中做到这一点?我正在使用MySQL。Ruby on Rails - 主键以外的参考索引的外键
感谢,
编辑:比方说,我有两个表A和B在B中,我有一个域名为名称,在一个我有b_name。如何指定
可如果你没有指定foreign_key
选项Model
水平
class A < ActiveRecord::Base
belongs_to :B, foreign_key: 'some_other_column'
end
内将其通过foreign_key
选项,Rails
默认查找B_id
。
您可以设置列名这是您的表像这样的外键:以上协会说
Class ModelA < ActiveRecord::Base
has_many :models, foreign_key: 'another_id'
,型号表有一个称为“another_id”列。
了解更多关于各种选项in the docs。
的foreign_key
arg是你所需要的,由pavan
和emaillenin
提及,但是,我想强调的是,为了得到它的工作,我发现你必须把它应用到了联想的两部分:
#app/models/user.rb
Class User < ActiveRecord::Base
has_many :posts, foreign_key: "post"
end
#app/models/post.rb
Class Post < ActiveRecord::Base
belongs_to :user, foreign_key: "post"
end
要在迁移/ dB参考,你真的只是用另一个替换____id
列。仍然会是一个整数等,除了它会有不同的名称
你想要一个自定义的'外键'? – Pavan
我已经用示例 – sadaf
更新了我的问题,如果我没有错,所有示例都告诉我如何将b_name指定为外键。我如何让ruby引用'name'而不是主键。是通过指定:reference =>'b_name'? – sadaf