在我的控制器中:
Article.author_ids_in(params[:filters][:author_ids])
这当然会返回一个错误(“你有一个零对象......”)如果那些特定的参数没有通过。这是模型方法:
def self.author_ids_in(filters)
unless filters.nil?
where(:author_id + filters)
else
scoped
end
end
正如你所看到的,我已经为一个nil对象做好了准备,那么我怎样才能让Ruby允许nil被传递?
答案 0 :(得分:3)
params [:filters]很可能是nil所以当你试图进入它时会引发异常[:author_ids]
在调用示波器之前进行检查,或者解除异常:
begin
Article.author_ids_in(params[:filters][:author_ids])
rescue NoMethodError
# do something else here
end