0

Rails (3.2.5) を使用して簡単な todo リストを作成しています。

すべてのユーザーの todo アイテムを順不同のリストで表示します。各リスト アイテムは todo そのものです。todo アイテムをクリックすると、ユーザーはそれを完了としてマークします。jQuery を使用して、li に done のクラスを指定して、スタイルを変更できるようにします。「クリア完了」ボタンをクリックすると、完了したアイテムが破棄されます(データベースから削除されます)。

これはどのように行うことができますか?

注意: 基本的に、Rails を使用してこのアプリを再作成しようとしています: http://davidpdrsn.com/todos/

4

2 に答える 2

0

リモートフォームを使用してそれを行うことができるので、次のようなものがあります

remote: trueアイテムごとにフォームを作成するか、フォームを1つだけ作成して、JQueryで送信することができます。

class TodoController
  def set_completed
    @todo = Todo.find(params[:id])
    @todo.done = true  # you could move this to your model and do something like @todo.done! and that would save it automatically
    @todo.save
  end

  def  destroy_completed 
    @todos_to_delete = Todo.where(done: true)# here you could also move it to your model and do it like Todo.completed
    @todos_to_delete.destroy_all
  end
end

そして、あなたはフォーマットするために、あるいはリスト上のアイテムを削除するために、jsで応答をレンダリングします。

views / todo / set_completed.erb.js

$("#item_<%= @todo.id %>").addClass("completed");
于 2012-06-17T02:51:50.230 に答える
0

モデルが呼び出されTodo、完成した列が と呼ばれると仮定するとcompleted、これらのいずれかをコントローラーに書き込むことができます。

Todo.destroy_all(:completed => true)
Todo.where(:completed => true).destroy_all

ajax リクエスト/レスポンスの管理方法についてサポートが必要な場合は、ここから始めてください (申し訳ありませんが、解決策を提供するつもりはありません。私見ですが、自分で解決する必要があります)。

リソース: ActiveRecord#Base::destroy_all

于 2012-06-16T22:49:40.433 に答える