0

Rails 4でメールボックスの宝石を使用しています。ユーザーが別のユーザーのプロファイルに移動したときに、そのプロファイルのボタンをクリックして2番目のユーザーにメッセージを送信するようにしようとしています。たとえば、A が B のプロフィールに移動し、メッセージ ボタンをクリックします。B は a からメッセージを受け取ります。プロフィール ページには、次のコードがあります。

<%=current_user.send_message(@user, "Body", "subject") %>

上記のコードを link_to タグに配置しようとしましたが、うまくいきません。[メッセージの受信] ページには、ドキュメントから取得した次のコードがあります。

Conversations:

<%= current_user.mailbox.conversations %>


Inbox:

<%= current_user.mailbox.inbox %>

しかし、受信トレイ コードにも会話コードにも何も表示されません。助けてください。ありがとう。

4

1 に答える 1

0

コードを評価する場合は、 を使用します<%<%=ページに何かを書き出すためのものです。また、.send_message メソッドは実際にはビューに含めるべきではありません。コントローラーでアクションを作成するか、サービス オブジェクト全体を作成して、メッセージングを担当させます。

1 つのことは、このようなコードは実際にはビューに属さないということです。しかし、もっと重要なのは、ユーザーがリンクをクリックした場合にのみ呼び出す必要があるということです。したがって、簡単な解決策は次のとおりです。

  1. コントローラーの 1 つにアクション「send_message」を作成します
  2. このアクションのルートを作成する
  3. この行current_user.send_message(@user, "Body", "subject")を新しく作成したアクションに入れます。このアクションのテンプレートが必要ない場合はリダイレクトを使用してください
  4. ビューで、このアクションにリンク(またはボタン)を追加します
于 2013-10-29T02:54:32.333 に答える