実現したいこと
presentations_controller 内の create
アクションで presentation の save
に成功した後、
event_show_path に該当する event_path(イベント名) への render
が上手く行かず困っています。
どなたかご助力いただけますでしょうか。
発生しているエラー
ruby
1ActionView::MissingTemplate (Missing template /events with {:locale=>[:en], :formats=>[:js, "application/ecmascript", "application/x-ecmascript", :html, :text, :js, :css, :ics, :csv, :vcf, :vtt, :png, :jpeg, :gif, :bmp, :tiff, :svg, :mpeg, :mp3, :ogg, :m4a, :webm, :mp4, :otf, :ttf, :woff, :woff2, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip, :gzip], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder]}. Searched in: 2 * "/Users/abc/RailsProject/TEST_Rails/app/views" 3):
各ファイル
- routes.rb
ruby
1Rails.application.routes.draw do 2 resources :events, param: :event_name do 3 resources :presentations 4 end 5end
- presentations_controller.rb
ruby
1class PresentationsController < ApplicationController 2 def create 3 @presentation = Presentation.new 4 @presentation.presentation_name = params[:presentation][:presentation_name] 5 @presentation.description = params[:presentation][:description] 6 @event = Event.find_by(event_name: params[:event_event_name]) 7 @presentation.Event_id = @event[:id] 8 # WIP 9 if @presentation.save 10 render event_path(params[:event_event_name]) 11 # render events_path 12 else 13 render 'new' 14 end 15 end 16 17 private 18 def presentation_params 19 params.require(:presentation) 20 .permit(:presentation_name, :description) 21 end 22end
---------------追記---------------
rake routes
の実行結果
$ rake routes Prefix Verb URI Pattern Controller#Action event_presentations GET /events/:event_event_name/presentations(.:format) presentations#index POST /events/:event_event_name/presentations(.:format) presentations#create new_event_presentation GET /events/:event_event_name/presentations/new(.:format) presentations#new edit_event_presentation GET /events/:event_event_name/presentations/:id/edit(.:format) presentations#edit event_presentation GET /events/:event_event_name/presentations/:id(.:format) presentations#show PATCH /events/:event_event_name/presentations/:id(.:format) presentations#update PUT /events/:event_event_name/presentations/:id(.:format) presentations#update DELETE /events/:event_event_name/presentations/:id(.:format) presentations#destroy events GET /events(.:format) events#index POST /events(.:format) events#create new_event GET /events/new(.:format) events#new edit_event GET /events/:event_name/edit(.:format) events#edit event GET /events/:event_name(.:format) events#show PATCH /events/:event_name(.:format) events#update PUT /events/:event_name(.:format) events#update DELETE /events/:event_name(.:format) events#destroy
わかっている事
- プレゼンテーションを登録するためのViewの時点(def new)の時点では、イベント名(params[:event_event_name])は取得できている
- DBを確認したところ、
@presentation.save
も正常に実行されている
以上です。
上記に記載の通り、routesファイルではresourcesをネストしており、上記のファイル群とは直接関係のないイベント一覧ページから、イベント詳細ページ(event_path(params[:event_event_name]))へ遷移できる事は確認済みです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。