0

コントローラーでクライアントからリクエストを受け取ると、次のようにします。

def index
  if (params[:event] == nil || params[:year] == nil || params[:country] == nil)
    raise some_error
  end
end

Rails 3.2でそれを実行するより良い方法はありますか?

ありがとう。

4

2 に答える 2

0

試す:

keys = [:event, :year, :country]
unless (keys - (params.keys & keys)).blank?
  raise some_error
end
于 2013-06-11T06:14:18.073 に答える
0

これは同じことを行います。もう少し冗長ですが、条件で各パラメーター キーを直接指定する必要がなくなるため、DRYer になります。

params_hash = []
keys = [:event, :year, :country]

params.each do |key, value|
    if keys.include?(key)
        params_hash << value
    end
end

if params_hash.include?(nil)
    raise some_error
end
于 2013-06-10T23:23:38.137 に答える