有没有一种惯用的方法可以在 Rails 中执行 where(params[:foo] || '*')?
Is there an idiomatic way to do where(params[:foo] || '*') in Rails?
如果发送params[:foo]
,则过滤:
@submissions = Submission.where(foo: params[:foo] )
.order("#{params[:sort]} #{ params[:direction]}" )
如果没有,那么
@submissions = Submission.order("#{params[:sort]} #{ params[:direction]}" )
执行此操作的惯用方法是什么?
是否可以使用通配符:params[:foo] || '*'
与其搜索通配符,我认为您应该按如下方式分隔 where
调用:
@submissions = Submission.order("#{params[:sort]} #{ params[:direction]}")
@submissions = @submissions.where(foo: params[:foo]) if params[:foo]
仅当存在 params[:foo]
时,才会执行 where
方法更新 @submissions
关系。
%
等通配符可以与 sql like
运算符一起使用。但是,为什么要 运行 额外的地方,如果你想要所有的记录?
如果发送params[:foo]
,则过滤:
@submissions = Submission.where(foo: params[:foo] )
.order("#{params[:sort]} #{ params[:direction]}" )
如果没有,那么
@submissions = Submission.order("#{params[:sort]} #{ params[:direction]}" )
执行此操作的惯用方法是什么?
是否可以使用通配符:params[:foo] || '*'
与其搜索通配符,我认为您应该按如下方式分隔 where
调用:
@submissions = Submission.order("#{params[:sort]} #{ params[:direction]}")
@submissions = @submissions.where(foo: params[:foo]) if params[:foo]
仅当存在 params[:foo]
时,才会执行 where
方法更新 @submissions
关系。
%
等通配符可以与 sql like
运算符一起使用。但是,为什么要 运行 额外的地方,如果你想要所有的记录?