Require multiple strong parameters

I am trying to make my controller require several different parameters when passing them. Any ideas how to do this on one line? (or the right way to do this)

params.require(:facebook_message).require(:access_token)
params.require(:facebook_message).require(:facebook_user_id)
params.require(:facebook_message).require(:message_body)
params.require(:facebook_message).permit(
    :access_token, :facebook_user_id, :message_body, :message_subject
)
+4
source share
2 answers

params.require currently only accepts one parameter:

### File actionpack/lib/action_controller/metal/strong_parameters.rb, line 182
def require(key)
  self[key].presence || raise(ParameterMissing.new(key))
end
+2
source
%i(access_token facebook_user_id message_body).each do |param_key|
  params.require(:facebook_message).require(param_key)
end
params.require(:facebook_message).permit(
    :access_token, :facebook_user_id, :message_body, :message_subject
)

Not exactly one line, but it saves some space ...

+1
source

Source: https://habr.com/ru/post/1534533/


All Articles