我在这里寻求建议:
我在遗留方案中有两个表A
和B
,已加入A.somename = B.othername
。这两列都是字符串。那么如何在rails(v2.1.0)中设置它们之间的关系呢?鉴于A
有许多B
,最佳做法是什么:
使用:finder_sql
并编写SQL select
通过其他参数配置关系(如何?我知道我可以设置:foreign_key = 'othername'
,但这只会尝试设置A.id = B.othername
关系 - 我该怎么做才能设置纠正一个?),
其他一些我没想过的东西。
那么,你会建议什么?
答案 0 :(得分:1)
如果由于某些原因你坚持使用Rails 2.1,那么最佳选择似乎是使用set_primary_key
,如下所示:
class A
set_primary_key 'somename'
has_many :bs, :foreign_key => 'othername'
end
还有一个别名,可让您使用类似属性的语法(self.primary_key = 'somename'
)。
顺便说一句,如果您能够升级到2.3,则可以直接使用primary_key
选项has_many
,如下所示:
has_many :debitos, :primary_key => 'somename', :foreign_key => 'othername'
如果您选择使用此功能,则无需使用set_primary_key
为该类声明主键。