Rails

Gemfile に書く require: false とは何か

久しぶりに Rails アプリを1から作るにあたり、Rubocop を導入しようとしたらいろいろと疑問が出てきたので調べた。 Rails アプリに Rubocop を入れる文脈で、こんな書き方をよく見かける。 Gemfile gem 'rubocop', require: false gem 'rubocop-rails', req…

Rails link_to の使い方

Rails はいろいろといい感じにやってくれるので便利だけど、理解しないままなんとなく使ってしまっているところが多いので整理した。 link_to link_to は、リンク先を指示するヘルパーメソッド。 書き方 ERB <%= link_to リンクテキスト, パス[, オプション]…

Rails マイグレーションファイルを削除したためにロールバックができない

もくもく会に参加 9月13日、オンラインで Web初学者のリモートもくもく会 from 鹿児島 #3 に参加した。フィヨルドブートキャンプで企業研修をされていた方が主催のもくもく会で、これまで毎回参加させてもらっている。 昨日のハッシュの問題の続きをやるつも…

Rails 検索条件に名前をつける(Scopeとクラスメソッド)

『パーフェクト Ruby on Rails 【増補改訂版】』を読んでいたら、検索条件を Scope で定義した場合とクラスメソッドで定義した場合の違いが書かれていた。クラスメソッドで定義するというのがよくわからなかったのでまとめてみる。 パーフェクト Ruby on Rai…

Rails モデルを使ったレコード検索

Rails では Active Record を利用することで、直接 SQL を書くことなしにさまざまなデータ操作ができる。 レコード検索 rails コンソールで動かして、発行される SQL も確認してみる。 1件検索 id で検索 id で検索する場合は find を使う。レコードが見つか…

Rails カラムのデフォルト値や not null 制約を変更する

既存のデータベーステーブルの特定のカラムについて、マイグレーションファイルを使って後からデフォルト値や not null 制約を設定する方法。 (共通手順) マイグレーションファイルを作り、 マイグレーションファイルを編集。 bin/rails db:migrate でデー…

Rails refute と assert_not を使ってみる

前回、refuteとassert_notはエラーメッセージが違うことがわかった。 masuyama13.hatenablog.com assert_not_equalなどは Minitest のrefute_notなどのエイリアス(別名)なので、assert_not_equalを呼び出すとrefute_notが実行される。つまり動作としては全…

Rails assert_not が定義された経緯を調査

この記事の続き。 masuyama13.hatenablog.com 前回の疑問 assert_not_equalなどはエイリアスとして設定されてるっぽい。なんでassert_notはエイリアスじゃだめなんだろう。 コードを見比べる Minitest の refute def refute test, msg = nil msg ||= message…

Ruby refute と assert_not の違いを調査

Rails のテストと Minitest を学習していて、refute と assert_not は同じものなのか違うものなのか気になったので調べてみた。 アサーション アサーション(assertion)とは、オブジェクトや式を評価して、期待された結果が得られるかどうかをチェックする…

Rails の思想

Rails でアプリを作ってみて、Rails の考え方が少しわかってきたのでまとめる。 CoC(Convention over Configuration) 設定より規約 ユーザーからすれば同じように見えるプログラムでも、その実装方法は無数にある。Rails では、合理的で効率的なプログラム…

Rails モデルについて学ぶ(Active Record)

Rails は、MVCアーキテクチャを採用している。MVCアーキテクチャとは、プログラムをモデル(Model)、ビュー(View)、コントローラー(Controller)の3つに分けて設計する手法のこと。 モデル(M)の役割は、データベースとのやり取り。 命名ルール モデル名…

Rails マイグレーションファイルの作り方

マイグレーションファイルは、データベースの設計図のようなもの。 マイグレーションファイルの作り方はいくつかあるが、以下のようなコマンドを実行すると自動的に作られる(このコマンドの違いは昨日の記事を参照)。 $ bin/rails g scaffold User name:st…

rails g scaffold で何が起きるのか

いよいよRailsの学習に入った。 今までProgateなどを含めRailsは全く触ったことがなく、今月19日に初めてインストールした。 Railsは簡単すぎるみたいな話ばかり聞いていたのだが、コマンド1個実行しただけでバーっと数えきれないぐらいファイルができて意味…