私のモデルのフォーム検証では、呼び出された列のパラメーター:virtual
が false の場合、:location
フィールドは:presence => true
.
私の現在のコードは次のとおりです。
validates :location, if :virtual => false, :presence => true
しかし、それは私に構文エラーを与えています。これをフォーマットする正しい方法は何ですか?
私のモデルのフォーム検証では、呼び出された列のパラメーター:virtual
が false の場合、:location
フィールドは:presence => true
.
私の現在のコードは次のとおりです。
validates :location, if :virtual => false, :presence => true
しかし、それは私に構文エラーを与えています。これをフォーマットする正しい方法は何ですか?
何かのようなもの:
attr_accessor :virtual # sets up a "virtual attribute" called "virtual" to which you can read/write a value
# this step isn't necessary if you already have an attribute on the model called "virtual"
validates :location, :presence => true, :unless => :virtual?
を使用するとvirtual?
、属性virtual
が true か false かをチェックする必要があります。を使用unless
すると、この検証は でvirtual
あるfalse
(または と見なされる値であるfalse
) 場合にのみ実行されます。
仮想属性と検証の詳細: Rails: Using form fields that are unassociated with a model in validations
validates :location, presence: true, if: Proc.new { |p| p.virtual == false }