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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

1662閲覧

現場で使える Ruby on Rails5 速習実践ガイドの タスク管理アプリの新規登録画面から確認画面への遷移ができません。

takumi_

総合スコア7

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/09/21 06:53

現場で使える Ruby on Rails5 速習実践ガイドという教材のChapter7-1で、
タスク管理アプリの新規登録画面から確認画面への遷移ができません。

新規登録画面のコード

h1 タスクの新規登録 .nav.justify-content-end = link_to '一覧', tasks_path, class: 'nav-link' - if @task.errors.present? ul#error_explanation - @task.errors.full_messages.each do |message| li= message = form_with model: @task, local: true, url: confirm_new_task_path do |f| .form-group = f.label :name = f.text_field :name, class: 'form-control', id: 'task_name' .form-group = f.label :description = f.text_area :description, row: 5, class: 'form-control', id: 'task_description' = f.submit '確認', class: 'btn btn-primary'

確認ボタンを押しても、エラーメッセージは出ず、新規登録画面に留まったままになってしまいます。

tasks_controller.rb

ruby

1class TasksController < ApplicationController 2 before_action :set_task, only: [:show, :edit, :update, :destroy] 3 4 def index 5 @tasks = current_user.tasks.order(created_at: :desc) 6 end 7 8 def show 9 end 10 11 def new 12 @task = Task.new 13 end 14 15 def edit 16 end 17 18 def update 19 @task.update!(task_params) 20 redirect_to task_url, notice: "タスク「#{@task.name}」を更新しました。" 21 end 22 23 def create 24 @task = current_user.tasks.new(task_params) 25 26 if params[:back].present? 27 render :new 28 return 29 end 30 31 if @task.save 32 logger.debug "task: #{@task.attributes.inspect}" 33 redirect_to @task, notice: "タスク「#{@task.name}」を登録しました。" 34 else 35 render :new 36 end 37 end 38 39 def destroy 40 @task.destroy 41 redirect_to tasks_url, notice: "タスク「#{@task.name}」を削除しました。" 42 end 43 44 def confirm_new 45 @task = current_user.tasks.new(task_params) 46 render :new unless @task.valid? 47 end 48 49 50 private 51 52 def task_params 53 params.require(:task).permit(:name, :description) 54 end 55 56 def set_task 57 @task = current_user.tasks.find(params[:id]) 58 end 59end 60

config/routes.rb

ruby

1ails.application.routes.draw do 2 get '/login', to: 'sessions#new' 3 post '/login', to: 'sessions#create' 4 delete '/logout', to: 'sessions#destroy' 5 namespace :admin do 6 resources :users 7 end 8 root to: 'tasks#index' 9 resources :tasks do 10 post :confirm, action: :confirm_new, on: :new 11 end 12 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 13end 14

確認画面のコード

h1 登録内容の確認 = form_with model: @task, local: true do |f| table.table.table-hover tbody tr th= Task.human_attribute_name(:name) td= @task.name = f.hidden_field :name tr th= Task.human_attribute_name(:description) td= simple_format(@task.description) = f.hidden_field :description = f.submit '戻る', name: 'back', class: 'btn btn-primary mr-3' = f.submit '登録', class: 'btn btn-primary'

これらが新しく追加したコードです。

雑な質問で申し訳ありませんがぜひ答えて頂けると有り難いです。
よろしくお願いい致します。

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

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

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

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

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

guest

回答1

0

自己解決

ビューファイルのconfirm_new.html.slimの名前を打ち間違えていたみたいです。
変更したら遷移しました。

投稿2019/09/21 08:05

takumi_

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問