Rails で ToDo アプリをつくる④ (Rails 入門)
↓の続きです。
今回やること
今回は CRUD の D (Delete) を実装していきます。
つまり、ToDoの削除ということになります。
ルーティングの設定
まずは、DELETEメソッドに対応するルーティングの設定を行います。
ルーティングなので、config/routes.rb
ファイルに追記します。
delete '/:id' => 'todos#destroy'
idをURLで指定するようにしています。
コントローラーのアクション追加
続いて、ルーティングの設定でDELETEメソッドに紐付けられた、TodosController
のdestroy
アクションを追加します。
def destroy @id = params[:id] @todo = Todo.find(@id) @todo.destroy redirect_to :action => 'index' end
URLで渡されたidをパラメータとして受け取り、それをもとに対応するデータを見つけます。
その後destroy
メソッドで削除します。
最後に、index
にリダイレクトします。
ボタンの変更
各ToDoを表示している際に、ダミーのDeleteボタンを追加していました。
これを実際の削除ができるように変更します。
- <a href="#" class="btn btn-danger"> - Delete - </a> + <%= link_to 'Delete', "/#{todo.id}", method: :delete, class: "btn btn-danger" %>
Railsでリンクを書くときは、link_to
を使います。
そして、リンク先はそのToDoのidをもとに決定します。
また、メソッドをdelete
に設定しておきます。
ここまでで、ToDoのDeleteボタンを押すと、そのToDoが消えるようにすることができました。
続き
終わり