gpt4 book ai didi

ruby-on-rails - rails 3 : Proper way to Delete resource using respond_with

转载 作者:行者123 更新时间:2023-12-04 02:21:50 25 4
gpt4 key购买 nike

我正在尝试通过合并 respond_with 来干燥 Controller .当我这样做时,按照 Railscast 中的一些说明,我的大部分工作都可以正常工作。问题出在 之后的重定向删除 一个资源...应该重定向到 people_url ...而是尝试加载特定资源。

我发现的示例代码看起来像这样......但它无法加载刚刚删除的资源:

# app/controllers/people_controller.rb
class PeopleController < ApplicationController
respond_to :html, :xml

def destroy
@person = Person.find(params[:id])
flash[:notice] = 'Successfully deleted person.' if @person.destroy
respond_with(@person) # <== spec fails here
end
end

将最后一行更改为 respond_with(@people)也不起作用(虽然我希望它会......)

经过大量挖掘并尽我所能理解事情后,我确实让事情开始工作(至少看起来是这样。规范通过。应用程序功能):
respond_with(@person, :location => people_url)  # <== now it works

那么,这是处理这个问题的正确方法吗?似乎有了 response_with 背后的所有“魔法”,它会知道删除后它不能重定向到自己?我还认为这个(7 个基本的 RESTful CRUD 方法之一)将是非常基本和基本的,所以很多例子会比比皆是......我。

希望有人能帮助我理解这里发生的 Rails '魔法',所以当我在路上遇到这种情况时,我不会感到惊讶。

最佳答案

您正在尝试使用已删除的资源进行响应。这就是问题所在。在删除等情况下,仅 header 响应有效。将请求头状态设置为 :ok足够。

head :ok

关于ruby-on-rails - rails 3 : Proper way to Delete resource using respond_with,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4999906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com