我想编辑模型的表单数据,但是每当我想路由到movies/1/edit rails时,我都会在Movies#edit中出现NoMethodError错误#edit
它向我展示了这个
我的控制器代码
class MoviesController < ApplicationController
def index
@movies=Movie.all
end
def new
@movie=Movie.new
end
def create
@movie=Movie.new(m_p)
if @movie.save
redirect_to movies_path
flash[:notice]="created"
end
end
def edit
@movie=Movie.find(params[:id])
end
def update
@movie=Movie.find(params[:id])
if @movie.update(m_p)
redirect_to movies_path
flash[:notice]="updated"
end
end
def show
@movie=Movie.find(params[:id])
end
private
def m_p
params.require(:movie).permit(:name,:genre,:hero)
end
结束
我的路线
get 'movies', to: 'movies#index'
get 'movies/new' ,to: 'movies#new'
post 'movies', to:'movies#create' #create
get 'movies/:id' ,to:'movies#show',:as=>"show"
get 'movies/:id/edit' ,to:'movies#edit'
patch 'movies/:id' ,to:'movies#update'
我的 edit.html.erb
<h1>edit</h1>
<%#= link_to "howe page", movies_path %>
<%= form_for @movie do |f| %>
<%= f.text_field :name %>
<%= f.text_field :genre %>
<%= f.text_field :hero %>
<%= f.submit %>
<% end %>
请帮帮我:<
答案 0 :(得分:2)
最简单的设置方法是使用 resources。它将为您创建所有 CRUD 路由。
# routes.rb
resources :movies
此外,rake routes
返回一个包含您拥有的所有路由的列表,当出现此类错误时,您可以检查它以查看缺少什么。