2016-03-25 6 views
0

Railsを使用してからしばらくして、少し錆びていると思います。これを行う方法はありますか?モーダル(ブートストラップ)でフォームをレンダリングし、別のコントローラのビューで利用できるようにする

私は、1つのユーザータイプで別のユーザータイプにメッセージを送信できるメッセージング機能を作成しようとしています。ユーザーインデックスページとユーザー表示ページにボタンを表示します。ボタンがクリックされると、そこに含まれるフォームがモーダルにポップアップ表示されます。

現在、私はMessageモデルをuser_type1_id,user_type2_idmessage_bodyの3つのカラムで作成しました。

私はこの新しいモデルのための別個のコントローラを作るべきですか?または、私はコントローラのロジックをuser_type1usertypeがメッセージされる)にする必要がありますか?

その他のご提案を歓迎します。

答えて

1

コントローラは、主にデータベースからデータを取得し、ビューの準備を整えます。したがって、user#indexuser#showページがある場合は、他のモーダルを使用していても、これらのビューに関連付けられたすべてのロジックにUsersControllerを使用する必要があります。本当に "Rails Way"です。ただし、message#indexページを作成する場合は、関連するMessagesControllerを作成する必要があります。

また、messagesビューディレクトリ(ファイル名は、例えば、messages/_form.html.erb)に部分的なスティッキングを作成しても問題ありません。その後、そのフォームが必要なときはいつでも(サイト全体を通じて)、あなたがする必要があるのは以下のように入力するだけです:

<%= render 'messages/form' %> 
+0

ヒントありがとうございます。つまり、私は新しい 'message_create'メソッドを' UsersController'に入れるべきですか? – dedles

+0

まあ、(フォームを表示するのではなく)実際にメッセージを作成するとき、その 'create'メソッドは' MessagesController'になければなりません。あなたは 'UsersController'にあることができますが、それは面倒です。 –

関連する問題