Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 积垢操作“;删除“;don';t在我的第一个RubyonRails项目中工作_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 积垢操作“;删除“;don';t在我的第一个RubyonRails项目中工作

Ruby on rails 4 积垢操作“;删除“;don';t在我的第一个RubyonRails项目中工作,ruby-on-rails-4,Ruby On Rails 4,我在我的第一个项目中实现了crud操作“delete”,但是系统将该命令作为一个“get”,没有错误 这是控制器: class MoviesController < ApplicationController def index @movies = Movie.all end #GET /movies/:id def show id = params[:id] @movie = Movie.find(id) #render plain: 'sh

我在我的第一个项目中实现了crud操作“delete”,但是系统将该命令作为一个“get”,没有错误

这是控制器:

class MoviesController < ApplicationController

def index
    @movies = Movie.all      
end
#GET /movies/:id
def show
    id = params[:id]
    @movie = Movie.find(id)
    #render plain: 'show'+params[:id]
end
#POST /movies/
# skip_before_action :verify_autenticity_token:
def create
    @movie = Movie.create!(params[:movie].permit(:title, :rating, :description, :realease_date))
    flash[:notice] = "#{@movie.title} was successfully created."
    redirect_to movies_path
end

#new
def new
end

def edit
  id = params[:id]
    @movie = Movie.find(id)
end

def update
  id = params[:id]
  @movie = Movie.find(id)
  if @movie.update_attributes!(params[:movie].permit(:title,:rating,:realease_date))   
   flash[:notice] = "#{@movie.title} has been edited."
   redirect_to movies_path
  end
end

def destroy
  id = params[:id]
  @movie = Movie.find(id)
  @movie.destroy
  flash[:notice] = "#{@movie.title} has been deleted."
  redirect_to movies_path
end


end
命令“rake routes”的结果:


如果看不到相应的路线,很难说到底发生了什么。您可以尝试运行
rake routes
,查看可用的路由

根据控制器中的注释,我猜您可能必须执行类似于将路径
链接到“Delete”、movies\u路径(id:@movie.id)、method::Delete
(删除)多元化的操作,但只有在资源路由配置错误的情况下才能解决问题


为了使链接按您所配置的方式工作,您的路由文件必须包含
资源:电影
,或者一个特殊配置的路由来映射到删除操作。

如果没有看到相应的路由,很难准确地说出发生了什么。您可以尝试运行
rake routes
,查看可用的路由

根据控制器中的注释,我猜您可能必须执行类似于将路径
链接到“Delete”、movies\u路径(id:@movie.id)、method::Delete
(删除)多元化的操作,但只有在资源路由配置错误的情况下才能解决问题

为了使链接按您配置的方式工作,您的路由文件必须包含
资源:movies
,或一个特殊配置的路由以映射到删除操作。

我有更新文件“routes.rb”和命令“rake routes”的答案,可以帮您找到答案吗?请尝试
{link_to'delete',“/movie/{@movie id}”,:method=>:delete}
。如果这样做有效,那么route helper将出现问题。另外,您在该页面上有JavaScript吗?您可能在点击链接时触发了一个
GET
请求。我有更新文件“routes.rb”和命令“rake routes”的答案,可以帮助您找到答案吗?请尝试
{link\'Delete',“/movie/{@movie.id},:method=>:Delete}
。如果这样做有效,那么route helper将出现问题。另外,您在该页面上有JavaScript吗?您可能会在单击链接时触发
GET
请求。
%h2 Details about #{@movie.title}

%ul#details
    %li
        Rating:
        = @movie.rating
    %li
        Released on:
        = @movie.realease_date#.strftime("%B %d, %Y")

%h3 Description:

%p#description= @movie.description

%h4 Reviews:

- if @movie.reviews.empty?
    %p
        No reviews for this movie...

-else 
    - @movie.reviews.each do |r|
        - u = Moviegoer.find(r.moviegoer_id)
        <b>#{r.vote}</b> (<i>#{Moviegoer.find(r.moviegoer_id).name}</i>) #{r.message} <br />


= link_to 'Add review', new_movie_review_path(@movie)
<br/><br/>



#{link_to 'Edit info', edit_movie_path(@movie)} - #{link_to 'Delete', movie_path(@movie), :method => :delete} - #{link_to 'Back to movie list', movies_path}
Rails.application.routes.draw do

resources :movies do
    resources :reviews, only: [:new, :create, :destroy]
end
resources :moviegoers

root :to  => redirect('/movies')

end
Prefix Verb   URI Pattern                                                                              Controller#Action
        movie_reviews POST   /movies/:movie_id/reviews(.:format)                                                      reviews#create
     new_movie_review GET    /movies/:movie_id/reviews/new(.:format)                                                  reviews#new
         movie_review DELETE /movies/:movie_id/reviews/:id(.:format)                                                  reviews#destroy
               movies GET    /movies(.:format)                                                                        movies#index
                      POST   /movies(.:format)                                                                        movies#create
            new_movie GET    /movies/new(.:format)                                                                    movies#new
           edit_movie GET    /movies/:id/edit(.:format)                                                               movies#edit
                movie GET    /movies/:id(.:format)                                                                    movies#show
                      PATCH  /movies/:id(.:format)                                                                    movies#update
                      PUT    /movies/:id(.:format)                                                                    movies#update
                      DELETE /movies/:id(.:format)                                                                    movies#destroy
           moviegoers GET    /moviegoers(.:format)                                                                    moviegoers#index
                      POST   /moviegoers(.:format)                                                                    moviegoers#create
        new_moviegoer GET    /moviegoers/new(.:format)                                                                moviegoers#new
       edit_moviegoer GET    /moviegoers/:id/edit(.:format)                                                           moviegoers#edit
            moviegoer GET    /moviegoers/:id(.:format)                                                                moviegoers#show
                      PATCH  /moviegoers/:id(.:format)                                                                moviegoers#update
                      PUT    /moviegoers/:id(.:format)                                                                moviegoers#update
                      DELETE /moviegoers/:id(.:format)                                                                moviegoers#destroy
                 root GET    /                                                                                        redirect(301, /movies)
   rails_service_blob GET    /rails/active_storage/blobs/:signed_id             /*filename(.:format)                               active_storage/blobs#show
rails_blob_representation GET    /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format)    active_storage/representations#show
      rails_disk_service GET    /rails/active_storage/disk/:encoded_key/*filename(.:format)                              active_storage/disk#show
 update_rails_disk_service PUT    /rails/active_storage/disk/:encoded_token(.:format)                                         active_storage/disk#update
      rails_direct_uploads POST   /rails/active_storage /direct_uploads(.:format)                                            active_storage/direct_uploads#create