weixin_42299402 2009-01-04 15:37
浏览 228
已采纳

请教一个表关联的问题

可能是我看书不细致,对于以下关系不太清楚如何表示出来:
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的关联并不支持这种关联,可能需要避免这种需求的出现。

再次感谢同学们热心的帮助。

  • 写回答

2条回答 默认 最新

  • iteye_17020 2009-01-04 17:03
    关注

    [quote]Package.find(1, :include => :user) 后台日志表明关联的时候 users表中默认用id作为关联,但好像belongs_to没有相关项指明users表中的关联字段 [/quote]

    这个是因为默认的主键为id.

    你可以简单的将user_name 改为主键.
    [code="ruby"]class User<AR:Base
    set_primary_key "user_name"
    end[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!