ジャケン

ジャケン

マガジン

  • devise まとめ

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

  • RailsでCRUDをつくってみる

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

記事一覧

Rails コメント機能

今回はコメント機能を作っていきます。 コメント機能とは何らかのデータに対してコメントができるものになります。 本記事は以下のマガジンで実装した内容を引き継いでいま…

ジャケン
1年前

Rails 検索機能

今回はRailsで検索機能を作っていきたいと思います。 ひとえに検索機能と言っても色々と種類がたくさんあります。例えば、ジャンルやカテゴリーによる検索、フリーワードに…

ジャケン
1年前
1

Rails ジャンル機能②

前回作ったジャンル機能にちょっとした機能を付け足していきます。 まずは以下のようにジャンル毎に本の数を表示する実装を付け加えます。 ジャンル毎の本の数を表示する…

ジャケン
1年前

Rails ジャンル機能

今回はジャンル機能を作っていきます。 ジャンル機能とは何なのかという疑問が湧きますが、データをジャンルごとにわけられるようになったり、ジャンルで検索が行えたりす…

ジャケン
1年前
1

Rails アソシエーション

Railsの関連付け(アソシエーション)は、2つのモデル同士のつながりを指しています。 関連づけには以下のようなものがあります。 belongs_to has_one has_many has_ma…

ジャケン
1年前

CRUD を作成⑩

CRUD を作成⑨ の続き。 今回は削除の処理を作成していく。 app/controllers/books_controller.rb を以下のように修正する。 def destroy book = Book.find(params[:id])…

ジャケン
1年前
2

CRUD を作成⑨

CRUD を作成⑧ の続き。 今回は編集ページを作成する。 app/controllers/books_controller.rb を以下のように修正する。 def edit @book = Book.find(params[:id])end …

ジャケン
1年前

CRUD を作成⑧

CRUD を作成⑦ の続き。 ブラウザからデータを登録できるか確認する。 作成ボタンを押す。一覧ページを見てみる。 先ほど登録した名前で一覧ページに表示されていれば登…

ジャケン
1年前

CRUD を作成⑦

CRUD を作成⑥ の続き。今回はデータを新しく作成できるようにする。 app/controllers/books_controller.rb に以下のコードを追加する。 def new @book = Book.newend …

ジャケン
1年前

CRUD を作成⑥

CRUD を作成⑤ の続き。 前回は詳細ページの表示に成功したが、表示されるデータが常に同じという問題があった。 app/controllers/books_controller.rb のコードは現在以下…

ジャケン
1年前

CRUD を作成⑤

CRUD を作成④ の続き。 前回は一覧ページを作成したので、今回は詳細ページを作成する。 詳細ページへのリンクを作成するため、一覧ページを修正する。 そのために、詳細…

ジャケン
1年前

CRUD を作成④

CRUD を作成③ の続き。 前回はモデルとテーブルを追加したので、今回はビューにデータを表示できるようにしていく。 一覧ページから作成していくが、まだブラウザからデー…

ジャケン
1年前

CRUD を作成③

CRUD を作成② の続き。 前回はコントローラを作成したので、今回はモデルとテーブルを作成する。 以下のコマンドを実行する。 bundle e rails g model book title:strin…

ジャケン
1年前

CRUD を作成②

CRUD を作成 の続き。 前回はルーティングを作成したので、今回はコントローラを作成する。 以下のコマンドを実行する。 ルーティングは作成済み、ヘルパーは使用しないの…

ジャケン
1年前

CRUD を作成

Webアプリケーションの基本であるCRUDを作成する。 CRUD とは については wiki を参照。 要するに、データを 生成(作成)・読み取り(取得、検索)・更新・削除 する処理…

ジャケン
1年前

devise を導入⑤

開発環境で画面からデータを作成するのは大変なので、seed を使ってデータを作成する。 以下のコードを seed.rb に追加する。 user_attributes = (1..50).map do |n| { …

ジャケン
1年前
Rails コメント機能

Rails コメント機能

今回はコメント機能を作っていきます。
コメント機能とは何らかのデータに対してコメントができるものになります。
本記事は以下のマガジンで実装した内容を引き継いでいますが、以下のマガジンの内容を実装していなくても問題ありません。

コメントテーブルを追加まずはコメントテーブルを追加します。
本記事では、コメントはuserとbookに紐づくようにしますが、お好みのデータに紐づくように実装していただいて問

もっとみる
Rails 検索機能

Rails 検索機能

今回はRailsで検索機能を作っていきたいと思います。
ひとえに検索機能と言っても色々と種類がたくさんあります。例えば、ジャンルやカテゴリーによる検索、フリーワードによる検索などです。
ジャンルによる検索は以下の記事で実装済みなので、今回はフリーワードによる検索機能を作っていきたいと思います。

初心者向けの記事で ransack を使用した検索機能を作る記事を見かけますが、初心者のうちこそそのよ

もっとみる
Rails ジャンル機能②

Rails ジャンル機能②

前回作ったジャンル機能にちょっとした機能を付け足していきます。
まずは以下のようにジャンル毎に本の数を表示する実装を付け加えます。

ジャンル毎の本の数を表示するまずはジャンル毎に本の数をカウントするためのメソッドを作成します。
最初にテストを以下のように修正し、実行してレッドになることを確認します。

describe '.group_by_name_with_book_count' do l

もっとみる
Rails ジャンル機能

Rails ジャンル機能

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

もっとみる
Rails アソシエーション

Rails アソシエーション

Railsの関連付け(アソシエーション)は、2つのモデル同士のつながりを指しています。
関連づけには以下のようなものがあります。

belongs_to

has_one

has_many

has_many :through

has_one :through

has_and_belongs_to_many

今回は主に使うことの多い belongs_to と has_many を使ってアソ

もっとみる
CRUD を作成⑩

CRUD を作成⑩

CRUD を作成⑨ の続き。
今回は削除の処理を作成していく。
app/controllers/books_controller.rb を以下のように修正する。

def destroy book = Book.find(params[:id]) book.destroy redirect_to books_pathend

いつも通り、テストを実行する。レッドになるため、以下のようにspe

もっとみる
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

もっとみる
CRUD を作成⑧

CRUD を作成⑧

CRUD を作成⑦ の続き。
ブラウザからデータを登録できるか確認する。

作成ボタンを押す。一覧ページを見てみる。

先ほど登録した名前で一覧ページに表示されていれば登録できたことを確認できる。
登録後にどこかのページにリダイレクトするように修正する。
app/controllers/books_controller.rb を以下のように修正する。

def create @book = Bo

もっとみる
CRUD を作成⑦

CRUD を作成⑦

CRUD を作成⑥ の続き。今回はデータを新しく作成できるようにする。
app/controllers/books_controller.rb に以下のコードを追加する。

def new @book = Book.newend

テストを実行する。

bundle e rspec spec/requests/books_spec.rb

グリーンになる。追加した変更は既存のコードに何も影響を与

もっとみる
CRUD を作成⑥

CRUD を作成⑥

CRUD を作成⑤ の続き。
前回は詳細ページの表示に成功したが、表示されるデータが常に同じという問題があった。
app/controllers/books_controller.rb のコードは現在以下のようになっている。

def show @book = Book.find(1)end

現状のコードは find の引数に 1 と指定されている。この値が常に固定されているため、表示されるデ

もっとみる
CRUD を作成⑤

CRUD を作成⑤

CRUD を作成④ の続き。

前回は一覧ページを作成したので、今回は詳細ページを作成する。
詳細ページへのリンクを作成するため、一覧ページを修正する。
そのために、詳細ページへのパスを確認する。
以下のコマンドを実行する。

bundle e rails routes -g book

出力された結果から、詳細ページのルーティングは以下だとわかる。

book GET /books/:id

もっとみる
CRUD を作成④

CRUD を作成④

CRUD を作成③ の続き。
前回はモデルとテーブルを追加したので、今回はビューにデータを表示できるようにしていく。
一覧ページから作成していくが、まだブラウザからデータを作成できるようにしていないため、表示するデータを作成するため seed.rb にデータを作るコードを追加する。
※ 作成する件数は適宜調整

book_attributes = (1..100).map { |n| { titl

もっとみる
CRUD を作成③

CRUD を作成③

CRUD を作成② の続き。

前回はコントローラを作成したので、今回はモデルとテーブルを作成する。
以下のコマンドを実行する。

bundle e rails g model book title:string

以下のように様々なファイルが生成される。

invoke active_record create db/migrate/20230126045507_c

もっとみる
CRUD を作成②

CRUD を作成②

CRUD を作成 の続き。

前回はルーティングを作成したので、今回はコントローラを作成する。
以下のコマンドを実行する。
ルーティングは作成済み、ヘルパーは使用しないのでオプションを追加しコマンドを実行する。

rails g controller books index show new create edit update destroy --no-helper --skip-routes

もっとみる
CRUD を作成

CRUD を作成

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

何から作業を

もっとみる
devise を導入⑤

devise を導入⑤

開発環境で画面からデータを作成するのは大変なので、seed を使ってデータを作成する。
以下のコードを seed.rb に追加する。

user_attributes = (1..50).map do |n| { first_name: "test#{n}", last_name: "test#{n}", email: "test#{n}@example.com", pa

もっとみる