用于编辑数据的 Rails NoMethodError

时间:2021-03-19 06:53:01

标签: ruby-on-rails

我想编辑模型的表单数据,但是每当我想路由到movies/1/edit rails时,我都会在Movies#edit中出现NoMethodError错误#edit

它向我展示了这个

This is the error image

我的控制器代码

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 %>

请帮帮我:<

1 个答案:

答案 0 :(得分:2)

最简单的设置方法是使用 resources。它将为您创建所有 CRUD 路由。

# routes.rb
resources :movies

此外,rake routes 返回一个包含您拥有的所有路由的列表,当出现此类错误时,您可以检查它以查看缺少什么。

相关问题