前提・実現したいこと
ここに質問の内容を詳しく書いてください。
Ruby on Railsでアプリをつくっていますがcomic#showのページからroom#index
そしてmessageの新規投稿ページへ移動したいのですが、移動できない
発生している問題・エラーメッセージ
Error
1NoMethodError in Rooms#index 2Showing /Users/tomuchan/projects/manga_keijibanのコピー/app/views/rooms/index.html.erb where line #19 raised:
roomindex
1 2<%= link_to '新規投稿する', new_comic_room_message_path(@comic, @room) %> 3
messageController
試したこと
undefined method `id' for nil:NilClassとありidが存在しないとのことなので
@comic,@roomをlink_toメソッドに追記するも
error
1ActionController::UrlGenerationError in Rooms#index 2Showing /Users/tomuchan/projects/manga_keijiban/app/views/rooms/index.html.erb where line #19 raised: 3 4No route matches {:action=>"new", :comic_id=>nil, :controller=>"messages", :room_id=>nil}, missing required keys: [:comic_id, :room_id]
と別のエラーが生じる、ルーティングでネストしているからか複雑になっているのかもしれない
route
1Rails.application.routes.draw do 2 devise_for :users 3 root to: 'comics#index' 4 resources :comics, only: [:index, :new, :create, :show] do 5 resources :rooms, only: [:index, :new, :create, :show] do 6 resources :messages, only:[:new, :create] 7 end 8 end 9end 10
railsroutes
1 comic_room_messages POST /comics/:comic_id/rooms/:room_id/messages(.:format) messages#create 2 new_comic_room_message GET /comics/:comic_id/rooms/:room_id/messages/new(.:format) messages#new 3 comic_rooms GET /comics/:comic_id/rooms(.:format) rooms#index 4 POST /comics/:comic_id/rooms(.:format) rooms#create 5 new_comic_room GET /comics/:comic_id/rooms/new(.:format) rooms#new 6 comic_room GET /comics/:comic_id/rooms/:id(.:format) rooms#show 7 comics GET /comics(.:format) comics#index 8 POST /comics(.:format) comics#create 9 new_comic GET /comics/new(.:format) comics#new 10 comic GET /comics/:id(.:format) comics#show
あなたの回答
tips
プレビュー