1

以前の投稿でこれを解決したと思っていましたが、まだ苦労しています。私のRailsアプリでは、ユーザーがアプリ内で互いにメッセージを送信できるようにしようとしています(メールではありません)。レール3.2.8とルビー1.9.3p194を使用しています

メッセージbelongs_to:user

ユーザーhas_many:messages

これが私のメッセージモデルでメッセージを送信するための私の方法です

  def self.send_message(from, recipient)
     recipient do |recipient|
       msg = self.clone
       msg.sent = false
       msg.user_id = recipient
       msg.save
     end
     self.update_attributes :user_id => from.id, :sent => true
   end

Railsコンソールで次のようにしてこれをテストしようとしています:Message.send_message(u2、u)

ここで、u2 = User.find(1)&u = User.find(2)

エラーNoMethodError:undefined method `recipient'for#が発生し続けます

私は何が間違っているのですか?ユーザーに別のユーザーからのメッセージを適切に送信するにはどうすればよいですか。

誰かがより良い方法を持っているなら、私はどんな戦略にもオープンです。

4

1 に答える 1

1

これが良い答えかどうかはわかりません。テーブルを少し切り替えて、https://github.com/LTe/acts-as-messageableを使用することになりました。

于 2012-11-10T09:45:26.507 に答える