質問: ### 前提・実現したいこと rails4 ローカル環境 現在メッセージ機能を実装してラインのようなメッセージのやりとりができるようにしたいと思っています。 機能自体は実装できたのですが、会話一覧ページ(誰とメッセージのやり取りをしているか表示するラインのトーク一覧のようなページ)で、メッセージのやり取りをしている各ユーザーとの最新のメッセージを一件だけ取得する方法が分かりません。 conversations : 会話情報を格納するテーブル messages : 会話の個々のメッセージを格納するテーブル として実装しました。 ### 発生している問題・エラーメッセージ `#` と表示されてしまい、メッセージの内容(body)を取得できません。 ### 該当のソースコード `conversations/index.html.erb`ここで最新のメッセージを一件だけ取得したい ``` メッセージ一覧 <% @conversations.each do |conversation| %> <% if conversation.target_user(current_user).present? %> <%= link_to conversation.target_user(current_user).name, conversation_messages_path(conversation)%> <% end %> <%= conversation.messages.order(created_at: :desc).take %> <% end %> ``` どのように修正したら良いのでしょうか? 必要であればコントローラーやモデルなども記載しますので、アドバイス頂けると助かります。 よろしくお願いします。
回答: ``` # ``` はMessageのインスタンスです。 なので、get_method bodyで ``` <%= conversation.messages.order(created_at: :desc).take.body %> ``` 上記のようにbodyが取得できます。 rubyは全てがClass(クラス)の言語なので クラスやインスタンスやメソッドについて意識して使うようにしましょう。 Railsから入るとクラスやインスタンスを理解するのに時間がかかるかもしれません。