Railsを使用してユーザー同士がメッセージのやり取りをする機能を実装しております。
lang
1rails g model User name:string message:string 2rails g model Message user_id:integer message:string post_to_id:integer
上記のようにUserモデルとMessageモデルを実装し、Userモデルにはhas_many :messagesを、Messageモデルへはbelongs_to :userを追加し、関連づけをしました。
usersコントローラー内に以下のメソッドを追加
lang
1@messages=Message.where("user_id=?",current_user.id) if signed_in?
view側を以下のようにしました
app/views/users/message.html.erb
lang
1<% @messages.each do |msg| %> 2<li>送信日時:<%= msg.created_at %></li> 3<li>message内容:<%= msg.message %></li> 4<li>送り先id:<%= msg.post_to_id %></li> 5<li>送り先ユーザー名<%= User.find_by(id: msg.post_to_id).name %></li> 6<% end %>
上記のようにすればメッセージの「送り先ユーザー名」を表示できるのですが、この
lang
1<li>送り先ユーザー名<%= User.find_by(id: msg.post_to_id).name %></li>
の部分の書き方は正しくはどのようにすればよいのでしょうか?
試行錯誤でこの書き方になってしまったのですが、本当はどのように書くのが一般的なのでしょうか??
ちなみにこのコードで送り先ユーザー名は表示されます。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2014/10/22 11:20