次のような 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つの方法は受け入れられますか? もしそうなら、いつどちらを使いますか?