单击某个项目上的“完成”后,我希望该项目从待处理部分切换到我表格的已完成部分。完整的作品,但我如何用ajax / js完成这个脚?我的ajax全都搞定了,我只是不确定显示状态变化所需的javascript,如果有人能指出我正确的方向。 :)
todo_items_controller.rb
def complete
@todo_item = @todo_list.todo_items.find(params[:id])
@todo_item.complete!
respond_to do |format|
format.html { redirect_to todo_list_todo_items_url }
format.js
end
end
index.html.erb
<table id="todo-items">
<% if @todo_items.any? %>
<% @todo_items.pending.each do |item| %>
<%= render 'todo_items/todo_item', todo_list: @todo_list, item: item %>
<% end %>
<% if @todo_items.completed.any? %>
<tr><td><h4>Completed</h4></td></tr>
<% @todo_items.completed.each do |item| %>
<%= render 'todo_items/completed_todo_item', todo_list: @todo_list, item: item %>
<% end %>
<% end %>
<% end %>
</table>
_completed_todo_item.html.erb
<tr height="30px">
<td><%= time_ago_in_words(item.completed_at) + ' ago' %></td>
<td><%= item.content %></td>
<td><%= link_to 'X', [@todo_list, item], method: :delete, data: { confirm: "Delete?" } %></td>
</tr>
complete.js.erb&gt;&gt;目前只是将完成的项目放在表格的顶部
$('#todo-items tr:first').after('<%= j render 'todo_items/completed_todo_item', todo_list: @todo_list, item: @todo_item %>');
但我怎么会把它移到completed.any?迭代?