gpt4 book ai didi

ruby-on-rails - 嵌套资源上路由不正确的 Rails Destroy 方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:01 25 4
gpt4 key购买 nike

我有一个带有嵌套任务的列表对象。我创建了一个显示单个任务的页面,以及一个允许用户编辑单个任务的页面。我现在想添加从任务编辑页面上的列表中删除任务的功能。使用以下代码

<%= link_to 'Delete this task',@task, confirm: 'Are you sure?', method: :delete %>

产量

undefined task_path method

此代码位于 show.html.erb 页面上,我在其中调用 @task 以显示任务中存储的所有数据,因此我认为此问题可能是某种路由错误,但我似乎无法弄清楚。

相关的 Controller 方法是

def destroy
@task = Task.find(params[:id])
@task.destroy

respond_to do |format|
format.html { redirect_to list_tasks_path(@task) }
format.json { head :ok }
end
end

我认为使用 delete 方法时,我提供的 @task 只会通过参数发送到 destroy 方法,但这个错误似乎表明这并不是它的工作原理。那么如何正确销毁 Rails 中的嵌套资源?

编辑:这是带有嵌套资源的路由文件:

MyApp::Application.routes.draw do
resources :lists do
resources :tasks
end
get "home/index"

root :to => 'home#index'
end

感谢您的帮助!

最佳答案

您应该设置@list,或使用@task.list(假设您有属于关系),您可以执行以下操作:

<%= link_to "Delete this task", list_task_path(@task.list, @task), confirm: "Are you sure?", method: :delete %>

干杯!

关于ruby-on-rails - 嵌套资源上路由不正确的 Rails Destroy 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8585788/

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