gpt4 book ai didi

ruby-on-rails - ActionController::RoutingError: No route match -> while using checkbox + ajax

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

我正在构建一个简单的任务管理应用程序,当我尝试处理复选框以指示任务已完成时,会发生一个奇怪的问题。

这是我想出的代码:

<%= check_box_tag "id", "id", task.done, 
:onclick => remote_function(
:update => "task",
:url => { :action => :update, :controller => :tasks, :id => task.id },
:with => "'task[done]=true'",
:complete => "alert('hi')" ) %>

它会打印复选框,并且会根据 task.done 的状态自动检查它。但是当我触发 onclick 并查看日志时,我看到以下条目:

2011 年 4 月 25 日 23:15:44 -0300 开始为 127.0.0.1 发布“/tasks/20”
ActionController::RoutingError(没有路由匹配“/tasks/20”):

查看我的 config/routes.rb 文件,我有:
 resources :tasks

你能帮我弄清楚我做错了什么吗?为什么找不到路径?

这是 的完整代码_task.html.erb 看法。
<tr>
<td class="task">
<span class="tasktitle">


<%= check_box_tag "id", "id", task.done,
:onclick => remote_function(
:update => "task",
:url => { :action => :update, :controller => :tasks, :id => task.id },
:with => "task[done]=true",
:complete => "alert('hi')" ) %>



<span class="<%= if (task.done) then "editable_field_complete" else "editable_field" end %>" id="task_title_<%= task.id %>">
<%= best_in_place task, :title, :type => :input %>
</span>
</span>
<span class="taskdelete"><%= link_to "delete", task, :method => :delete, :class => "delete",
:confirm => "You sure?",
:title => task.title %></span>
<span class="taskcreated">
Created <%= time_ago_in_words(task.created_at) %> ago.
</span>
</td>
</tr>

非常感谢各位

最佳答案

问题似乎是 remote_function 使用 POST 协议(protocol)提交数据,但是当您在 routes.rb 中使用资源时,它仅在调用更新操作时接受 PUT 协议(protocol)。

尝试将以下参数添加到您的 remote_function:

:method=>:put

所以最终结果将是:
<%= check_box_tag "id", "id", task.done, 
:onclick => remote_function(
:update => "task",
:url => { :action => :update, :controller => :tasks, :id => task.id },
:method => :put,
:with => "task[done]=true",
:complete => "alert('hi')" ) %>

关于ruby-on-rails - ActionController::RoutingError: No route match -> while using checkbox + ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5785249/

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