Rails

Rails のルーティング

ルーティングを追加するとき、毎回調べているので少しずつまとめていこうかと思います。 等価な書き方が色々あるので絶対これというわけではありません。 scope URI Pattern にのみ追加されます。 Rails.application.routes.draw do scope :user do resource…

モデルの属性に自作のバリデーションを追加する

モデルの属性のバリデーションをしたいときに、バリデーションヘルパーの既存バリデーションだけでは足りないことがあると思います。 そのため、Rails ではバリデーションを自作することができます。 その一つの方法としてバリデーションメソッドがあります…

Rails の Time と DateTime

日時を扱うクラスには DateTime と Time の二つがあり、どちらを使えば良いのかを知ることもなく過ごしてきてしまっていたのですが、ざっくりと知ることができたのでメモ。 基本的には Time ( ActiveSupport::TimeWithZone ) を使う Rails 環境においては、…

RSpec の expect_any_instance_of でハマった

class Test def say_hoge hoge1 = Hoge.new hoge2 = Hoge.new hoge1.say hoge2.say end end class Hoge def say puts 'hoge' end end こんな感じのクラスがあったとして、 Test#say_hoge で Hoge インスタンスが Hoge#say を1回ずつ実行していることをテスト…

Factory Girl で関連を定義する

1対1の関連を持つ users テーブルと profiles テーブルがあり、User モデルと Profile モデルがそれぞれ以下のように定義されているとします。 users テーブル field type id int プライマリキー name string email string profiles テーブル field type id …