前提・実現したいこと
railsにて映画レビューサイトを作成しています。
投稿画面を表示させたところエラーが発生してしまいました。解決法やソースコードをご教授いただきたいです。
発生している問題・エラーメッセージ
NoMethodError in Admin::Movies#new
Showing /home/ec2-user/environment/MovieBoard/app/views/admin/movies/new.html.erb where line #2 raised:
undefined method `movies_path' for #ActionView::Base:0x007fe8e80cfef8
Rails.root: /home/ec2-user/environment/MovieBoard
該当のソースコード
new.html.erb
<%= form_with model: @movie do |f| %> <h5> 上映日<%= f.text_field :day %> 製作国<%= f.text_field :country %> 上映時間<%= f.text_field :time %> </h5> <h4>タイトル</h4> <%= f.text_field :title %> <h4>あらすじ</h4> <%= f.text_area :body %> <%= f.submit '投稿' %> <% end %>
movies_controller.rb
class Admin::MoviesController < ApplicationController def new @movie = Movie.new end def create @movie = Movie.new(movie_params) @movie.save redirect_to admin_movies_path end def index @movies = Movie.all end def show end def edit end private # ストロングパラメータ def movie_params params.require(:movie).permit(:title, :body, :day, :country, :time) end end
routes.rb
Rails.application.routes.draw do # 顧客用 scope module: :public do root to: 'homes#top' end # URL /customers/sign_in ... devise_for :customers,skip: [:passwords], controllers: { registrations: "public/registrations", sessions: 'public/sessions' } # 管理者用 namespace :admin do resources :movies, only: [:new, :create, :index, :show, :edit, :update, :destroy] end # URL /admin/sign_in ... devise_for :admin, skip: [:registrations, :passwords] ,controllers: { sessions: "admin/sessions" } # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
試したこと
new.htmlの@movieを適当な@listなどに変更すれば表示はされるのでおそらく因数の受け渡しに何か問題があるのかと思いますが原因は分からないです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/06 10:24