我开始使用RoR,这是我第一次尝试使用新的remote_function。我有一个项目管理应用程序,所以你有项目(流),他们有多个任务。在流视图视图中,我想列出任务,旁边有一个复选框。如果用户点击复选框,我想发布到/ tasks / 3发送done = true,以便可能更新记录。
以下是我提出的代码:
<%= check_box_tag“id”,“id”,task.done, :onclick => remote_function( :update => “任务”, :url => {:action => :更新}, :with => “‘做=真正的’”, :complete => “alert('hi')”)%>
它会打印复选框,并根据task.done的状态自动检查它。但是当我点击onclick并观察日志时,我看到以下条目:
ActionController :: RoutingError(没有路由匹配“/ streams / 3”):
“/ streams / 3”听起来不对,我真的希望看到像/ tasks / id这样的东西。
你能帮我弄清楚我做错了吗?
以下是视图的完整代码。
<tr>
<td class="task">
<span class="tasktitle">
<%= check_box_tag "id", "id", task.done,
:onclick => remote_function(
:update => "task",
:url => { :action => :update },
:with => "'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>
非常感谢你们
答案 0 :(得分:0)
“流”视图中是否有复选框?
只需写下:url => { :action => :update, :controller => 'tasks'}
即可。这应该可以解决你的问题。
答案 1 :(得分:0)
错误原因: 忘了提控制器指针 Suggestoin: http://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html 总是参考api for rails对我很有帮助。