我的模型如下:
Greeting
belongs_to :icon
belongs_to :icon, :foreign_key => :user_icon
如果我没有注册用户,我需要保存icon_id和user_icon id。
这是对的吗?我是否可以通过执行以下操作来访问该图标:
@greeting.icon.name
@greeting.user_icon.name
我想改进这个问题,让我更好地解释一下:
我想在另一个模型中保存同一模型中的两个对象。
所以Greeting属于Icon,但我会在Greetings表中有两个字段,用于来自Icons表的外键,但标记方式不同。
我调用一个外键属性icon_id和另一个user_icon_id。
为此,请执行以下操作:
Greeting
belongs_to :icon
belongs_to :icon, foreign_key => :user_icon_id
答案 0 :(得分:1)
几乎正确,你需要这样的东西:
belongs_to :icon
belongs_to :user_icon, :class_name => "Icon", foreign_key => :user_icon_id
如果更改has_one, has_many or belongs_to
关联中字段的名称,使Rails无法将其转换为模型名称,则需要告诉Rails您实际意味着哪个模型,因此{{ 1}}。
答案 1 :(得分:0)
不。你需要
belongs_to :user_icon, :foreign_key => :user_icon
如果您想使用数据库中的外键用户图标来拥有greeting.user_icon访问者。