前提・実現したいこと
当方、チャットアプリを作成しております。
画面左にグループ一覧を表示する際に、グループ内の最新メッセージの順番で並べ(LINE等のイメージです)、メッセージが格納されていないグループは一番下に表示させたいです
発生している問題・エラーメッセージ
Groupコントローラー内でorderを使うところまではわかるのですが、messageテーブルのカラムからデータを取り出す方法がわかりません、、、
テーブルやルーター
userテーブル
groupテーブル
messageテーブル
group_usersテーブル(中間テーブルでuser_idとgroup_idが入っています)
以上4テーブル
groupテーブルとmessageテーブルのリレーションはhas_manyとbelongs_toで繋げてあります!
messageはgroupにネストされております↓
resources :groups do resources :messages end
該当のソースコード
groups_controller.rb↓
def index @groups = Group.includes(:message).order("messages.created_at DESC") binding.pry →=> #<Group::ActiveRecord_Relation:0x3fc419ff6ca8>#何も入っていない?? end
上記のコードで試しましたが、エラーになってしまいます、、、
###エラー文↓
ActiveRecord::ConfigurationError in Groups#index
Showing /Users/kounotakumi/projects/tentyo-chat/app/views/layouts/_group_index.html.erb where line #10 raised:
Can't join 'Group' to association named 'message'; perhaps you misspelled it?→上手くjoinできていない??
Extracted source (around line #10):
8 <% end %> 9 </div> 10 <% groups.each do |group| %> 11 <div class="Main__left__group"> 12 <%= link_to(group_messages_path(group), class: 'Main__left__group-a') do %> 13 <div class="Main__left__group-name">
Trace of template inclusion: #<ActionView::Template app/views/groups/index.html.erb locals=[]>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/30 02:48
2020/06/30 03:05