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

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

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

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

Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

366閲覧

Rail on Railsのローカルサーバー上でのエラーを解消したいのでよろしくお願いいたします。

ryo_15130724

総合スコア12

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/02/06 06:43

前提・実現したいこと

Rail on Railsのローカルサーバー上でのエラーを解消したい。

発生している問題・エラーメッセージ

http://localhost:3000/tasks/newでタスクの登録をしようとすると「No route matches [POST] "/tasks/new"」のエラーメッセージが表示されます。 本来はhttp://localhost:3000/tasks/newで【ja.yml】を読み込んで「登録する」というボタンができる想定なのですが、「保存する」というボタンになってしまっているため【ja.yml】もうまく読み込めていないのかと思います。

該当のソースコード

【index.html.slim】 h1 タスク一覧 = link_to '新規登録', new_task_path, class: 'btn btn-primary' .mb-3 table.table.table-hover thead.thead-default tr th= Task.human_attribute_name(:name) th= Task.human_attribute_name(:created_at) tbody - @tasks.each do |task| tr td= task.name td= task.created_at 【new.html.slim】 h1 タスクの新規登録 .nav.justify-content-end = link_to '一覧', tasks_path, class: 'nav_link' = form_with model: @task, local: true 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, rows: 5, class: 'form-control', id: 'task_description' =f.submit nil, class: 'btn btn-primary' 【routes.rb】 Rails.application.routes.draw do root to: 'tasks#index' resources :tasks # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end 【tasks_controller.rb】 class TasksController < ApplicationController def index @tasks = Task.all end def show end def new @tasks = Task.new end def create task = Task.new(task_params) task.save! redirect_to tasks_url, notice: "タスク「#{task.name}」を登録しました。" end def edit end private def task_params params.require(:task).permit(:name, :description) end end

試したこと

スペルミス等の確認とサーバーの再起動等は行いました。

補足情報(FW/ツールのバージョンなど)

Rails 5.2.2
ruby 2.5.1

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

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

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

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

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

guest

回答1

0

自己解決

自己解決いたしました。

def new
@tasks = Task.new
end

となっていたので、

form_with model: @task, local: true do |f|

の@taskが取得できなかったことが原因でした。

def new
@task = Task.new
end

に直したところ正常に動きました。
単純ミスで見てくださったかた、大変申し訳ありませんでした。
ありがとうございました。

投稿2019/02/06 07:46

ryo_15130724

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問