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

这做同样的事情,虽然它有点冗长,但它是 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 回答
0

尝试:

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