可能是我看书不细致,对于以下关系不太清楚如何表示出来:
Table[packages]
[Field] id name user_name
Table[users]
[Field] id name full_name
目的: 通过user_name关联两张表
[code="ruby"]
class Package < ActiveRecord::Base
belongs_to :user,
:foreign_key => "user_name"
end
[/code]
执行:
Package.find(1, :include => :user) 后台日志表明关联的时候 users表中默认用id作为关联,但好像belongs_to没有相关项指明users表中的关联字段
请指教一下,谢谢!
[b]问题补充:[/b]
首先,谢谢 看见你就犯困 同学的回答,这个方法是可行的。另外就 qichunren 同学的疑问一并做出解释:
实际情况是这样的,其实我是有三张表,前两张表名称就是现有的packages 和 users,现在有第三张表,比如叫boxes。
现有系统里的两张表是users 和 boxes,他们之间是通过user_id进行关联,packages可能是来自另外一个系统的视图,其中没有user_id字段,只有类似的user_name作为可供选择的唯一关联。所以才有了我上面的需求。
抛开系统设计层面上的问题,从现在已知的反馈来看(Ruby Forum),Rails的关联并不支持这种关联,可能需要避免这种需求的出现。
再次感谢同学们热心的帮助。