我目前有一个基本的待办事项列表应用程序,显示任务"做"以及任务"已完成"在应用程序的索引页面上。模型"任务"具有属性"已完成"我在任务的显示页面中有一个链接:
<%= link_to "Completed", complete_task_path, method: :patch%>
页面刷新时列表更新,但我实际上无法在索引页面上发出更新此信息的AJAX请求。
我不确定我的网址应该是什么,因为我已尝试使用提供的#&#34; rake routes&#34;在控制台中。
我的complete.js.erb:
$(document).ready(function() {
console.log("working");
$('.task_submit_box').click(function() {
$.ajax({url: '/tasks/:id/complete', success: function(result) {
$('.task_area').html(result);
console.log(result);
}});
});
});
用于显示任务的html:
<ul class="wrapper_task_list">
<% @task.each do |task| %>
<% if task.completed == false %>
<li>
<div class="task_area", id="incomplete_task_area">
<%= link_to task.title, task_path(task), class: 'wrapper_task_name'%>
<%= form_for task, remote: true do |f| %>
<%= f.check_box :completed, class: 'task_check_box' %>
<%= f.submit 'update', class: 'task_submit_box' %>
<% end %>
</div>
</li>
<% end %>
<% end %>
</ul>
我的控制器中的完整方法:
def complete
@task = current_user.tasks.find(params[:id])
@task.update_attribute(:completed_at, Time.now)
@task.update_attribute(:completed, true)
respond_to do |format|
format.js
format.html
end
redirect_to root_path
end
关于路线,这是&#34; rake路线&#34;命令:
complete_task PATCH /tasks/:id/complete(.:format) tasks#complete