作成したイベントを送信した後に、そのイベントの詳細画面にリダイレクトさせたいのですが、エラーが出ています。エラー文を見るとidがないという内容なのですが具体的にどのように直せば良いかがわかりません。
エラー文などを載せますのでご教授ください。
エラー文
No route matches {:action=>"show", :controller=>"events", :user_id=>"155ee0f3-0681-41e0-8554-300a9d318f9c"}, missing required keys: [:id]
config/routes.rb resources :users, only: :show do resources :events end (ネストしています)
app/controllers/events_controller.rb before_action :set_event, only: [:show] def show end def new @event = Event.new end def edit end def create @event = Event.new(event_params) respond_to do |format| if @event.save format.html { redirect_to user_event_path, notice: 'Event was successfully created.' } format.json { render :show, status: :created, location: @event } else format.html { render :new } format.json { render json: @event.errors, status: :unprocessable_entity } end end end private def set_event @event = Event.find(params[:id]) end def event_params params.require(:event).permit(:worker_name, :description, :start_date, :end_date).merge(user_id: current_user.id) end
よろしくお願いいたします。
app/views/events/show.html.haml %p#notice= notice %p %b Worker name: = @event.worker_name %p %b Description: = @event.description %p %b Start date: = @event.start_date %p %b End date: = @event.end_date
= form_for [current_user, @event] do |f| - if @event.errors.any? #error_explanation %h2= "#{pluralize(@event.errors.count, "error")} prohibited this event from being saved:" %ul - @event.errors.full_messages.each do |message| %li= message .field = f.label :お名前 = f.text_field :worker_name, :placeholder => "名前を入力" .field = f.label :詳細な体調を記入 = f.text_area :description, :placeholder => "例)熱は○○.○℃で気分に問題はありません等ご自身の体調をご記載ください" .field = f.label :出勤時間 = f.time_select :start_date .field = f.label :退勤予定時間 = f.time_select :end_date .actions = f.submit '送信する'
送信するをクリックするとshowの画面にリダイレクトさせたいです。
よろしくお願いいたいます。