@ledsun blog

無味の味は佳境に入らざればすなわち知れず

strong parameterのexpectで空文字はエラー

空文字を許容するのかしないのか混乱したので、メモっておきます。

my-app(dev):002> params = ActionController::Parameters.new(a: "")
=> #<ActionController::Parameters {"a" => ""} permitted: false>
my-app:003(dev)> params.expect :a
(my-app):3:in '<main>': param is missing or the value is empty or invalid: a (ActionController::ParameterMissing)

require と同じ動きです。

my-app(dev):004> params.require :a
(my-app):4:in '<main>': param is missing or the value is empty or invalid: a (ActionController::ParameterMissing)