35
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails 削除機能の実装方法 手順

Posted at

#はじめに
ここではRailsにおいて削除機能を実装するときに必要な
手順について書いておきたいと思います。

##実装手順
まずは機能の実装ということで,ルーティング、コントローラー、ビューのそれぞれに削除のための定義をしている必要がある。

今回は処理の流れ順でコーディングしていく。
ここで削除の際の処理を整理すると
①あるビューで削除ボタンが実行される
②削除ボタンに設定されているルーティングが読まれる
③ルーティングに従い、コントローラーが呼ばれ、アクションが
実行され、対象のデータが削除される。
④アクションの処理が終了したことで、ビューファイルが呼ばれる。
ここでのビューは削除完了を表示するビューとする。

###削除ボタン作成
そのためまずは削除ボタンの作成をする。
作成にはビューファイルの任意の箇所にlink_toメソッドを使っていく。
以下記述例

index.html.erb
<%= link_to '削除', "/tweets/#{tweet.user_id}", method: :delete %>

###ルーティング
データの削除を行う場合にはHTTPメソッドのうちの1つ、 deleteメソッドを使用する。
ルーティングファイルには以下のように
deleteメソッドを使ったルーティングを定義する

以下記述例

routes.rb
delete 'tweets/:id' => 'tweets#destroy'

###コントローラー
コントローラーではルーティングで定義したdestroyアクションについてに処理を定義していく。

以下記述例

tweets_controller.rb
def destroy
 tweet = Tweet.find(params[:id])
  if tweet.user_id == current_user.id
   tweet.destroy #destroyメソッドを使用し対象のツイートを削除する。
  end
end

###削除完了のビューファイル作成
destroyアクションの処理後のビューファイルを作成する。

ビューファイルに削除完了を表示するためのコードを記述する。

以下記述例

destory.html.erb
<div class="contents row">
    <div class="success">
      <h3>
        削除が完了しました。
      </h3>
      <a class="btn" href="/">投稿一覧へ戻る</a>
    </div>
</div>
35
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?