2
1

Rails基本アクションをゼロから理解するためのガイド

Last updated at Posted at 2024-08-30

はじめに

最近railsを本格的に使うようになりました。
基本アクションに沿ったページ作成ができるとデータ取得などが非常にやりやすいということを痛感しています。
そこで、各アクションがどのような用途で使われているのか違いを認識し適切なものが使えるように説明していきたいと思います。

作成

newアクション

  • 役割: 新しいリソースを作成するためのフォームを表示するアクションです。createアクションとセットで使用されることが多く、ユーザーが入力フォームにアクセスできるようにします。
  • 詳細:
    • URLパターン: /users/new, /posts/new
    • 動作: User.new で空のインスタンスを作成し、フォームに渡す。ビューにはフォームヘルパーを使って、フォームのフィールドが表示されます。
    • :
      def new
        @user = User.new
      end
      

createアクション

  • 役割: 新しいリソースをデータベースに作成するためのアクションです。フォームから送信されたデータを受け取り、新しいユーザーや投稿、商品を作成します。
  • 詳細:
    • URLパターン: POSTリクエストで呼び出され、一般的に /users, /posts などのエンドポイントに対応します。
    • 動作: User.new(user_params) などを使用して新しいインスタンスを生成し、save メソッドでデータベースに保存します。
    • :
      def create
        @user = User.new(user_params)
        if @user.save
          redirect_to @user
        else
          render :new
        end
      end
      

情報一覧

indexアクション

  • 役割: 複数のリソースを一覧表示するためのアクションです。たとえば、全ユーザーや全投稿、全プロダクトのリストを表示する際に使用します。
  • 詳細:
    • URLパターン: /users, /posts
    • 動作: User.all などのクエリを使用して、データベースから全レコードを取得し、ビューでリスト表示します。
    • :
      def index
        @users = User.all
      end
      

searchアクション(カスタムアクション)

  • 役割: 特定の条件でリソースを検索するアクションです。標準のCRUDに含まれないカスタムアクションとして、indexアクションに検索機能を追加する際によく使われます。
  • 詳細:
    • URLパターン: /users/search, /posts/search
    • 動作: フォームから送信された検索条件に基づいて、リソースをフィルタリングし、結果を表示します。
    • :
      def search
        @users = User.where("name LIKE ?", "%#{params[:query]}%")
      end
      

詳細情報

showアクション

  • 役割: 単一のリソースの詳細情報を表示するためのアクションです。特定のユーザーや投稿、商品などの詳細ページに使用します。
  • 詳細:
    • URLパターン: /users/:id, /posts/:id
    • 動作: User.find(params[:id]) などを用いて、特定のIDに対応するレコードを取得し、ビューでその詳細を表示します。
    • :
      def show
        @user = User.find(params[:id])
      end
      

情報編集

editアクション

  • 役割: 既存のリソースを編集するためのフォームを表示するアクションです。updateアクションとセットで使用され、ユーザーがリソースの情報を更新できるようにします。
  • 詳細:
    • URLパターン: /users/:id/edit, /posts/:id/edit
    • 動作: User.find(params[:id]) で対象のレコードを取得し、フォームに表示するためのインスタンス変数に渡します。
    • :
      def edit
        @user = User.find(params[:id])
      end
      

updateアクション

  • 役割: 既存のリソースのデータを更新するためのアクションです。ユーザーのプロフィール情報の更新や投稿内容の修正などに使用します。
  • 詳細:
    • URLパターン: PATCHリクエストで呼び出され、/users/:id, /posts/:id などのエンドポイントに対応します。
    • 動作: User.find(params[:id]) で対象のレコードを取得し、update メソッドを用いてフィールドを更新します。
    • :
      def update
        @user = User.find(params[:id])
        if @user.update(user_params)
          redirect_to @user
        else
          render :edit
        end
      end
      

destroyアクション

  • 役割: リソースを削除するためのアクションです。不要になったユーザーアカウントや投稿を削除する場合に使用します。
  • 詳細:
    • URLパターン: DELETEリクエストで呼び出され、/users/:id, /posts/:id などのエンドポイントに対応します。
    • 動作: User.find(params[:id]) で対象のレコードを取得し、destroy メソッドで削除します。
    • :
      def destroy
        @user = User.find(params[:id])
        @user.destroy
        redirect_to users_path
      end
      

まとめ

この記事では、Railsの基本的なアクションであるindex, show, new, create, edit, update, destroy、そしてカスタムアクションのsearchについて説明しました。これらのアクションを適切に理解し使い分けることで、効率的にアプリケーションを構築できます。
皆さんが基本的なアクションを使いこなすための一助となれば幸いです。
ここまで読んでいただきありがとうございます。

2
1
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
2
1