0

次のようなモデルがあります。

 Greeting

  belongs_to :icon
  belongs_to :icon, :foreign_key => :user_icon

登録ユーザーがいない場合は、icon_id と user_icon id を保存する必要があります。

これは正しいです?次の手順でアイコンにアクセスできますか。

@greeting.icon.name
@greeting.user_icon.name

この質問を改善したいので、よりよく説明させてください。

同じモデルの 2 つのオブジェクトを別のモデルに保存したいと考えています。

したがって、Greeting は Icon に属しますが、Greetings テーブルには Icon テーブルからの外部キー用の 2 つのフィールドがありますが、異なるラベルが付けられています。

1 つの外部キー属性を icon_id と呼び、もう 1 つを 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_toRailsがモデル名に変換できないような方法で関連付けのフィールドの名前を変更した場合、実際にどのモデルを意味するかを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 に答える