/ / Rails属性の存在を検証しますが、空の文字列を許可します-ruby-on-rails、ruby、validation、activerecord

Rails属性の存在を検証するが、空の文字列を許可する - ruby​​-on-rails、ruby、validation、activerecord

文字列属性がnilではないことを検証したいのですが、空の文字列を許可します。

次のように:

validates name: not_nil, allow_empty: true

回答:

回答№1は2

あなたもすることができます:

validates :name, exclusion: { in: [nil] }

回答№2の場合は1

空の文字列を許可するが、アクティブなレコード検証コールバックでnilを拒否するには、条件付きプロシージャを使用して、nilでない場合に条件付きで属性の存在を要求します。

コードは次のようになります。

validates :name, presence: true, if: proc { name.nil? }

ただし、おそらくnullを許可する必要があります。その後、検証しないでください。コードにnilまたは空の文字列があるかどうかを確認してください。