前提・実現したいこと
RubyonRails初心者です。単語帳カードを作ろうとしています。
そこで、単語帳のタイトルを登録し、その後画面遷移し、単語を登録させようとしています。
発生している問題・エラーメッセージ
単語帳を登録しようとすると、ルーティングエラーが出てしまいます。
エラーメッセージ
Routing Error
No route matches [POST] "/flashcards/new"
Routes
Routes match in priority from top to bottom
該当のソースコード
class FlashcardsController < ApplicationController def index @flashcards = Flashcard.all end def new @flashcard = Flashcard.new end def create @flashcard = Flashcard.new(flashcard_palams) if @flashcard.save redirect_to new_flashcard_word_path else render 'index' end end private def flashcard_palams params.require(:flashcard).permit(:name, word_id: params[:word_id]) end end
#flashcard_index.thml.erb <body> <div class="main"> <%# 単語一覧 %> <div class="card-list"> <h1>単語帳一覧</h1> <ul class="cards"> <li class="contents"> <%= link_to 'HTML', "#"%></li> <li class="contents"> <%= link_to 'CSS', "#"%></li> <li class="contents"> <%= link_to 'Ruby', "#"%></li> </ul> </div> <%# 登録機能 %> <div> <h2>単語帳登録</h2> <%= form_with model: @flashcard, url: new_flashcard_path, local: true do |f|%> <%= f.text_field :name, placeholder: "単語帳名"%> <%= f.submit "登録"%> <% end %> </div> </div> </body>
#routes.rb Rails.application.routes.draw do devise_for :users root to: "flashcards#index" resources :flashcards do resources :words end end
試したこと
viewの変数やform_withのモデル名、Urlなども変えてみましたが変化がなく、またmethod: getを追加してみましたが、問題は解決しませんでした。
そこで手詰まりになり、質問してみました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/01 07:21 編集