请教一个表关联的问题

请教一个表关联的问题

可能是我看书不细致,对于以下关系不太清楚如何表示出来:
Table[packages]
[Field] id name user_name

Table[users]
[Field] id name full_name

目的: 通过user_name关联两张表
class Package < ActiveRecord::Base 
 belongs_to :user, 
     :foreign_key => "user_name" 
end 
执行:
Package.find(1, :include => :user) 后台日志表明关联的时候 users表中默认用id作为关联,但好像belongs_to没有相关项指明users表中的关联字段

请指教一下,谢谢!
rails中的关联(association)是建立在id(integer type)上的,因此rails会自动寻找id段来进行关联。
belongs_to和has_many中的foreign_key属性,虽然可以改变关联中的字段的默认的名称,但是改变后的字段仍需要是id类型(integer type)。基于字符串的关联是不默认支持的,当然楼主可以自定义。
楼主想用字符串的类型来建立关联。这在数据库本身的设计中是有问题的。因为user_name是user的属性,所以它只应该存在于users表中。故这两个表应该这样建立:

Table[packages]
[Field] id name user_id
Table[users]
[Field] id name full_name
这样的话,类的声明是默认的,如下:

[Copy to clipboard] [ - ]