如果我遇到可能需要传递某些参数但是如果它们不存在我需要默认顺序的情况,那么调用像User.order()这样的东西是否合法。或者是否有一些默认电话..
所以例如
# if the order_by exists I need to sort by that otherwise I need to get default results
order = params[:order_by]
@results = User.order(order)
答案 0 :(得分:1)
如果您不知道会收到哪种参数,可以尝试使用以下代码:
@users = User.scoped # or any other default handler which returns ActiveRecord::Relation
@users = @users.where(name: params[:name]) if params[:name].present?
@users = @users.order(params[:order_by]) if params[:order_by].present?