如何在 Rails 中使 where 可选?
我试过:
@pages = Page
.where(status: params[:status].present? ? params[:status] : 1)
.where(parent_id: nil) if params[:status].blank?
.order(sort_column + ' ' + sort_direction)
但它看起来是退出 block ,而是返回:undefined method 'where' for true:TrueClass
。
最佳答案
您可以将声明分成三行。 Rails 将延迟加载您的查询,因此不必担心这里的性能。它会正常工作:
@pages = Page.where(status: params[:status].present? ? params[:status] : 1)
@pages = @pages.where(parent_id: nil) if params[:status].blank?
@pages = @pages.order(sort_column + ' ' + sort_direction)
关于ruby-on-rails - Rails 中的可选位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41447198/