当我在控制器中收到来自客户端的请求时,我会:
def index
if (params[:event] == nil || params[:year] == nil || params[:country] == nil)
raise some_error
end
end
有没有更好的方法在 rails 3.2 中执行它?
谢谢。
当我在控制器中收到来自客户端的请求时,我会:
def index
if (params[:event] == nil || params[:year] == nil || params[:country] == nil)
raise some_error
end
end
有没有更好的方法在 rails 3.2 中执行它?
谢谢。
这做同样的事情,虽然它有点冗长,但它是 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
尝试:
keys = [:event, :year, :country]
unless (keys - (params.keys & keys)).blank?
raise some_error
end