前提・実現したいこと
memberのテーブルとcommentのテーブルが多対多の関係で
中間テーブルを通してmemberの名前を持ってくるようにしたい
発生している問題・エラーメッセージ
NoMethodError in Comments#index undefined method `member' for nil:NilClass
該当のソースコード
haml
1- @comments.each do |comment| 2 .content 3 .content__left 4 .content__left--place 5 = comment.place 6 .content__right 7 .content__right-name 8 - @comment.member.each do |member| 9 = member.name 10
route
1Rails.application.routes.draw do 2 # devise_for :users 3 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 4 root to: 'posts#index' 5 resources :posts, only: [:index] 6 resources :comments, only: [:index, :show] 7 8end
migrate
1class CreateMemberComments < ActiveRecord::Migration[5.2] 2 def change 3 create_table :member_comments do |t| 4 t.references :member, foreign_key: true 5 t.references :comment, foreign_key: true 6 t.timestamps 7 end 8 end 9end
migrate
1class CreateComments < ActiveRecord::Migration[5.2] 2 def change 3 create_table :comments do |t| 4 t.string :place ,null: false 5 t.text :text ,null: false 6 t.string :inage_url ,null: false 7 t.timestamps 8 end 9 end 10end 11
migrate
1class CreateMembers < ActiveRecord::Migration[5.2] 2 def change 3 create_table :members do |t| 4 t.string :name, null: false 5 t.timestamps 6 end 7 end 8end
migrate
1class CreateMembers < ActiveRecord::Migration[5.2] 2 def change 3 create_table :members do |t| 4 t.string :name, null: false 5 t.timestamps 6 end 7 end 8end
controller
1class CommentsController < ApplicationController 2 def index 3 # binding.pry 4 5 @comments = Comment.all 6 # @comment = Comment.find(params[:id]) 7 8 end 9 10 def show 11 end 12 13 private 14 def comment_params 15 params.require(:comment).permit(:name, user_ids: []) 16 end 17end
model
1class Member < ApplicationRecord 2 has_many :use_members 3 has_many :user, through: :user_members 4 has_many :member_comments 5 has_many :comments, through: :member_comments 6end 7
model
1class Comment < ApplicationRecord 2 has_many :user_commnents 3 has_many :comment, through: :user_comments 4 has_many :member_comments 5 has_many :comment, through: :member_comments 6end 7 8
model
1class MemberComment < ApplicationRecord 2 belongs_to :member 3 belongs_to :comment 4end 5
試したこと
https://programming-beginner-zeroichi.jp/articles/25
この記事を参考にfindメソッドで取り出してみたのですがダメでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
初めて投稿するので必要な情報がなかったりするかもしれませんがどうかよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/22 12:03
2019/11/22 12:26
2019/11/22 12:32
2019/11/22 12:37
2019/11/22 12:51