Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 3 Rails对已删除资源的行为作出响应?_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 Rails对已删除资源的行为作出响应?

Ruby on rails 3 Rails对已删除资源的行为作出响应?,ruby-on-rails-3,Ruby On Rails 3,我在Rails 3中使用respond_to和respond_with pair来响应删除销毁请求。销毁操作在UsersController中定义。它销毁由params[:id]指定的用户,并使用JS模板进行响应。然而,请求在RSpec测试中不断失败,我不确定如何修复它 下面是我的UsersController的一个片段: class UsersController < ApplicationController respond_to :html, only: [:index, :sh

我在Rails 3中使用respond_to和respond_with pair来响应删除销毁请求。销毁操作在UsersController中定义。它销毁由
params[:id]
指定的用户,并使用JS模板进行响应。然而,请求在RSpec测试中不断失败,我不确定如何修复它

下面是我的UsersController的一个片段:

class UsersController < ApplicationController
  respond_to :html, only: [:index, :show, :new, :edit]
  respond_to :js, only: [:create, :update, :delete]
  ...

  def destroy
    @user = User.find(params[:id])
    @user.destroy

    respond_with @user
  end
end

测试“respond with JS content”成功,但是测试“return HTTP successs”失败。当我使用调试器检查
response.code
时,它是406。自从删除成功后,我期待2xx。这是Rails的正常行为还是我的代码有问题?

看来你把REST
删除和控制器的
销毁搞砸了。Rails响应程序对以下内容一无所知:删除操作、更改

respond_to :js, only: [:create, :update, :delete]

或者将块传递给响应者,而不是

respond_with @user
使用

respond_to :js, only: [:create, :update, :destroy]
respond_with @user
respond_with @user do |format|
 format.js
end