-2

ユーザー間のメッセージをモデル化したいのですが、要件は次のとおりです。

  1. ユーザーはメッセージを送受信しましたuser.received_messagesuser.sent_messages

  2. メッセージには送信者と受信者があり、 と で取得する必要がありmessage.senderますmessage.receiver

User モデルを次のように作成しました。

script/generate model User name:string

およびメッセージモデルは次のとおりです。

script/generate model Message content:text sender_id:integer receiver_id:integer

私は以下のようなメッセージを思いつきました、そしてそれは望み通りに働きます

class Message < ActiveRecord::Base
    belongs_to :sender, :class_name=>'User', :foreign_key=>'sender_id'
    belongs_to :receiver, :class_name=>'User', :foreign_key=>'receiver_id'
end

しかし、ユーザーをモデル化する方法がわかりません。アドバイスをいただければ幸いです。

4

2 に答える 2

2

メッセージモデルと同じように:

class User < ActiveRecord::Base
  has_many :sent_messages, :class_name => "Message", :foreign_key => "sender_id"
  has_many :received_messages, :class_name => "Message", :foreign_key => "receiver_id"
end
于 2008-12-24T11:58:34.767 に答える
1

@eric2323223

Milan からコードをコピーして貼り付けただけの場合、'foreign_key' の前にセミコロンがないため、エラーが発生していると思われます。

行は次のようになります。

  has_many :sent_messages, :class_name => "Message", :foreign_key => "sender_id"
  has_many :received_messages, :class_name => "Message", :foreign_key => "receiver_id"

ケニー

于 2008-12-24T17:29:57.827 に答える