【发布时间】:2014-06-05 17:06:42
【问题描述】:
我关注了 Railscasts #37,非常有趣。我试图将其应用于已经暗示范围和分页的搜索。但它失败了。作为 Rails 的新手,我想知道是否存在更好的解决方案。
这是我原来的控制器,它可以工作:
def index
@business_rules = BusinessRule.pgnd(current_playground).order("hierarchy ASC").paginate(page: params[:page], :per_page => paginate_lines)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @business_rules }
end
end
但尝试添加 RailsCast 中定义的搜索功能失败:
@business_rules = BusinessRule.pgnd(current_playground).search(params[:search]).order("hierarchy ASC").paginate(page: params[:page], :per_page => paginate_lines)
错误信息是:undefined method order for #<Array:0x007fbf8cc62ca0>
【问题讨论】:
-
我还没有看到有问题的 RailsCast,但您的
search方法似乎返回了Array。为了使订单或分页起作用,您需要它返回ActiveRecord::Relation或ActiveRecord::CollectionProxy类型的对象。