次のような ActiveRecord アソシエーションがあるとします。
class City < ActiveRecord::Base
  belongs_to :state
end
州のない都市は無効です。これらの両方が可能な検証であるようです:
validates :state,    presence: true
# OR
validates :state_id, presence: true
次の理由から、それらは同一であると思います。
- belongs_toメソッド- stateを作成し、- state=
- state=を設定します- state_id
ただし、オブジェクトの代わりに ID をチェックするように仕様を変更することで、失敗した仕様を修正しました。
両方を検証するこれら2つの方法は受け入れられますか? もしそうなら、いつどちらを使いますか?