需要多个强大的参数

时间:2014-04-01 20:42:03

标签: ruby-on-rails ruby-on-rails-4

我试图强制我的控制器在传递时需要几个不同的参数。任何想法如何在一行中做到这一点? (或正确的方法)

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
)

2 个答案:

答案 0 :(得分:2)

params.require目前只允许一个参数:

### File actionpack/lib/action_controller/metal/strong_parameters.rb, line 182
def require(key)
  self[key].presence || raise(ParameterMissing.new(key))
end

答案 1 :(得分:1)

%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
)

不完全是单行,但它节省了一些空间......