ジャケン

ジャケン

マガジン

  • devise まとめ

    devise についてまとめてあります。初心者用です。

  • RailsでCRUDをつくってみる

    RailsでCRUDをつくってみます。初心者向けの記事になってます。

最近の記事

Rails コメント機能

今回はコメント機能を作っていきます。 コメント機能とは何らかのデータに対してコメントができるものになります。 本記事は以下のマガジンで実装した内容を引き継いでいますが、以下のマガジンの内容を実装していなくても問題ありません。 コメントテーブルを追加まずはコメントテーブルを追加します。 本記事では、コメントはuserとbookに紐づくようにしますが、お好みのデータに紐づくように実装していただいて問題ありません。 まずは以下のコマンドを実行してモデルを追加します。 bundl

    • Rails 検索機能

      今回はRailsで検索機能を作っていきたいと思います。 ひとえに検索機能と言っても色々と種類がたくさんあります。例えば、ジャンルやカテゴリーによる検索、フリーワードによる検索などです。 ジャンルによる検索は以下の記事で実装済みなので、今回はフリーワードによる検索機能を作っていきたいと思います。 初心者向けの記事で ransack を使用した検索機能を作る記事を見かけますが、初心者のうちこそそのような gem を使用せずに検索機能を実装することをオススメします。もちろん本記事

      • Rails ジャンル機能②

        前回作ったジャンル機能にちょっとした機能を付け足していきます。 まずは以下のようにジャンル毎に本の数を表示する実装を付け加えます。 ジャンル毎の本の数を表示するまずはジャンル毎に本の数をカウントするためのメソッドを作成します。 最初にテストを以下のように修正し、実行してレッドになることを確認します。 describe '.group_by_name_with_book_count' do let(:genre_name) { 'test' } let(:book_co

        • Rails ジャンル機能

          今回はジャンル機能を作っていきます。 ジャンル機能とは何なのかという疑問が湧きますが、データをジャンルごとにわけられるようになったり、ジャンルで検索が行えたりする くらいに考えていただくといいと思います。似たような言葉にカテゴリーというものがあると思います。厳密な定義は違うのかもしれませんが、ジャンルもカテゴリーも大枠では似たようなものでしょう。ジャンルをカテゴリーと適宜読み替えていただいても問題ないと思います。 この記事では事前に作成したコードを使用していきます。そのため

        Rails コメント機能

        マガジン

        • devise まとめ
          5本
        • RailsでCRUDをつくってみる
          10本

        記事

          Rails アソシエーション

          Railsの関連付け(アソシエーション)は、2つのモデル同士のつながりを指しています。 関連づけには以下のようなものがあります。 belongs_to has_one has_many has_many :through has_one :through has_and_belongs_to_many 今回は主に使うことの多い belongs_to と has_many を使ってアソシエーションを見ていきます。 この記事では事前に作成したコードを使用していきます

          Rails アソシエーション

          CRUD を作成⑩

          CRUD を作成⑨ の続き。 今回は削除の処理を作成していく。 app/controllers/books_controller.rb を以下のように修正する。 def destroy book = Book.find(params[:id]) book.destroy redirect_to books_pathend いつも通り、テストを実行する。レッドになるため、以下のようにspec/requests/books_spec.rb を修正する。 describ

          CRUD を作成⑩

          CRUD を作成⑨

          CRUD を作成⑧ の続き。 今回は編集ページを作成する。 app/controllers/books_controller.rb を以下のように修正する。 def edit @book = Book.find(params[:id])end テストを実行する。レッドになる。 bundle e rspec spec/requests/books_spec.rb....F..Failures: 1) Books GET /books/:id/edit returns

          CRUD を作成⑨

          CRUD を作成⑧

          CRUD を作成⑦ の続き。 ブラウザからデータを登録できるか確認する。 作成ボタンを押す。一覧ページを見てみる。 先ほど登録した名前で一覧ページに表示されていれば登録できたことを確認できる。 登録後にどこかのページにリダイレクトするように修正する。 app/controllers/books_controller.rb を以下のように修正する。 def create @book = Book.new(book_params) if @book.save re

          CRUD を作成⑧

          CRUD を作成⑦

          CRUD を作成⑥ の続き。今回はデータを新しく作成できるようにする。 app/controllers/books_controller.rb に以下のコードを追加する。 def new @book = Book.newend テストを実行する。 bundle e rspec spec/requests/books_spec.rb グリーンになる。追加した変更は既存のコードに何も影響を与えていないことがわかる。 app/views/books/new.html.er

          CRUD を作成⑦

          CRUD を作成⑥

          CRUD を作成⑤ の続き。 前回は詳細ページの表示に成功したが、表示されるデータが常に同じという問題があった。 app/controllers/books_controller.rb のコードは現在以下のようになっている。 def show @book = Book.find(1)end 現状のコードは find の引数に 1 と指定されている。この値が常に固定されているため、表示されるデータが常に同じという問題が発生している。 これを以下のように修正する。 def

          CRUD を作成⑥

          CRUD を作成⑤

          CRUD を作成④ の続き。 前回は一覧ページを作成したので、今回は詳細ページを作成する。 詳細ページへのリンクを作成するため、一覧ページを修正する。 そのために、詳細ページへのパスを確認する。 以下のコマンドを実行する。 bundle e rails routes -g book 出力された結果から、詳細ページのルーティングは以下だとわかる。 book GET /books/:id(.:format) books#show URLヘルパーは一番左側

          CRUD を作成⑤

          CRUD を作成④

          CRUD を作成③ の続き。 前回はモデルとテーブルを追加したので、今回はビューにデータを表示できるようにしていく。 一覧ページから作成していくが、まだブラウザからデータを作成できるようにしていないため、表示するデータを作成するため seed.rb にデータを作るコードを追加する。 ※ 作成する件数は適宜調整 book_attributes = (1..100).map { |n| { title: "本#{n}" } }book_attributes.each { |bo

          CRUD を作成④

          CRUD を作成③

          CRUD を作成② の続き。 前回はコントローラを作成したので、今回はモデルとテーブルを作成する。 以下のコマンドを実行する。 bundle e rails g model book title:string 以下のように様々なファイルが生成される。 invoke active_record create db/migrate/20230126045507_create_books.rb create app/models

          CRUD を作成③

          CRUD を作成②

          CRUD を作成 の続き。 前回はルーティングを作成したので、今回はコントローラを作成する。 以下のコマンドを実行する。 ルーティングは作成済み、ヘルパーは使用しないのでオプションを追加しコマンドを実行する。 rails g controller books index show new create edit update destroy --no-helper --skip-routes 以下のように出力されていれば成功。私の環境では rspec を使用しているので

          CRUD を作成②

          CRUD を作成

          Webアプリケーションの基本であるCRUDを作成する。 CRUD とは については wiki を参照。 要するに、データを 生成(作成)・読み取り(取得、検索)・更新・削除 する処理のことである。 Railsを使用しての作成となることに注意。また、初心者向けの記事を想定しているため、なるべく例えを用いたり、専門用語を使わず、仮に使ったとして噛み砕いた形で表現することを意識している。 何から作業を始めるかについては作業者のレベルに応じて分かれるところであると個人的には考えてい

          CRUD を作成

          devise を導入⑤

          開発環境で画面からデータを作成するのは大変なので、seed を使ってデータを作成する。 以下のコードを seed.rb に追加する。 user_attributes = (1..50).map do |n| { first_name: "test#{n}", last_name: "test#{n}", email: "test#{n}@example.com", password: 'password', password_confirma

          devise を導入⑤