質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

Q&A

1回答

842閲覧

作成したイベントの詳細画面にリダイレクトさせたいがエラーが解決できない。

mamiduka

総合スコア11

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

0グッド

0クリップ

投稿2020/05/29 13:02

編集2020/05/29 13:43

作成したイベントを送信した後に、そのイベントの詳細画面にリダイレクトさせたいのですが、エラーが出ています。エラー文を見ると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の画面にリダイレクトさせたいです。
よろしくお願いいたいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2020/05/29 13:14

action show を呼び出す画面のviewを載せてください
mamiduka

2020/05/29 13:18

記載いたしました。 よろしくお願いいたします。
winterboum

2020/05/29 13:22

それは show のviewです。 showを呼び出す画面のviewが必要です
mamiduka

2020/05/29 13:44

失礼いたしました。 よろしくお願いいたします。
guest

回答1

0

このviewだとshowよりはcreateかupdateにおもえるが、、、
showに飛ばすには
form_for [current_user, @event],method: :get
としてください

投稿2020/05/29 14:08

winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mamiduka

2020/05/29 14:27

ご回答ありがとうございます。 おっしゃる通りに実装してみました。 今回の自分の質問が間違っていました。。。 createのビューにリダイレクトするにはどのように記載すればよろしいでしょうか? お手数ですが、よろしくお願いいたします。
winterboum

2020/05/29 14:30

「createのビューにリダイレクトする」? ではそのviewからcreateアクションに行く所は問題なくて、 createの処理も問題なくて そのあとの行き先の問題ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問