0

我有一个模型如下:

 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
4

2 回答 2

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 您实际指的是哪个模型,因此:class_name.

于 2011-08-07T07:51:24.110 回答
0

没有。你需要

belongs_to :user_icon, :foreign_key => :user_icon

如果你想在你的数据库中使用外键用户图标有一个 greeting.user_icon 访问器。

于 2011-08-05T12:31:13.077 回答