如何正确回发有关复选框onclick事件(RoR3)的信息

时间:2011-04-25 02:22:33

标签: ruby-on-rails ajax ruby-on-rails-3

我开始使用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>

非常感谢你们

2 个答案:

答案 0 :(得分:0)

“流”视图中是否有复选框?

只需写下:url => { :action => :update, :controller => 'tasks'}即可。这应该可以解决你的问题。

答案 1 :(得分:0)

错误原因: 忘了提控制器指针 Suggestoin: http://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html 总是参考api for rails对我很有帮助。