Rails
久しぶりに Rails アプリを1から作るにあたり、Rubocop を導入しようとしたらいろいろと疑問が出てきたので調べた。 Rails アプリに Rubocop を入れる文脈で、こんな書き方をよく見かける。 Gemfile gem 'rubocop', require: false gem 'rubocop-rails', req…
Rails はいろいろといい感じにやってくれるので便利だけど、理解しないままなんとなく使ってしまっているところが多いので整理した。 link_to link_to は、リンク先を指示するヘルパーメソッド。 書き方 ERB <%= link_to リンクテキスト, パス[, オプション]…
もくもく会に参加 9月13日、オンラインで Web初学者のリモートもくもく会 from 鹿児島 #3 に参加した。フィヨルドブートキャンプで企業研修をされていた方が主催のもくもく会で、これまで毎回参加させてもらっている。 昨日のハッシュの問題の続きをやるつも…
『パーフェクト Ruby on Rails 【増補改訂版】』を読んでいたら、検索条件を Scope で定義した場合とクラスメソッドで定義した場合の違いが書かれていた。クラスメソッドで定義するというのがよくわからなかったのでまとめてみる。 パーフェクト Ruby on Rai…
Rails では Active Record を利用することで、直接 SQL を書くことなしにさまざまなデータ操作ができる。 レコード検索 rails コンソールで動かして、発行される SQL も確認してみる。 1件検索 id で検索 id で検索する場合は find を使う。レコードが見つか…
既存のデータベーステーブルの特定のカラムについて、マイグレーションファイルを使って後からデフォルト値や not null 制約を設定する方法。 (共通手順) マイグレーションファイルを作り、 マイグレーションファイルを編集。 bin/rails db:migrate でデー…
前回、refuteとassert_notはエラーメッセージが違うことがわかった。 masuyama13.hatenablog.com assert_not_equalなどは Minitest のrefute_notなどのエイリアス(別名)なので、assert_not_equalを呼び出すとrefute_notが実行される。つまり動作としては全…
この記事の続き。 masuyama13.hatenablog.com 前回の疑問 assert_not_equalなどはエイリアスとして設定されてるっぽい。なんでassert_notはエイリアスじゃだめなんだろう。 コードを見比べる Minitest の refute def refute test, msg = nil msg ||= message…
Rails のテストと Minitest を学習していて、refute と assert_not は同じものなのか違うものなのか気になったので調べてみた。 アサーション アサーション(assertion)とは、オブジェクトや式を評価して、期待された結果が得られるかどうかをチェックする…
Rails でアプリを作ってみて、Rails の考え方が少しわかってきたのでまとめる。 CoC(Convention over Configuration) 設定より規約 ユーザーからすれば同じように見えるプログラムでも、その実装方法は無数にある。Rails では、合理的で効率的なプログラム…
Rails は、MVCアーキテクチャを採用している。MVCアーキテクチャとは、プログラムをモデル(Model)、ビュー(View)、コントローラー(Controller)の3つに分けて設計する手法のこと。 モデル(M)の役割は、データベースとのやり取り。 命名ルール モデル名…
マイグレーションファイルは、データベースの設計図のようなもの。 マイグレーションファイルの作り方はいくつかあるが、以下のようなコマンドを実行すると自動的に作られる(このコマンドの違いは昨日の記事を参照)。 $ bin/rails g scaffold User name:st…
いよいよRailsの学習に入った。 今までProgateなどを含めRailsは全く触ったことがなく、今月19日に初めてインストールした。 Railsは簡単すぎるみたいな話ばかり聞いていたのだが、コマンド1個実行しただけでバーっと数えきれないぐらいファイルができて意味…