gpt4 book ai didi

sql - 尽管需要 'will_paginate/array',但数组无法与 will_paginate 一起使用?

转载 作者:数据小太阳 更新时间:2023-10-29 07:36:21 24 4
gpt4 key购买 nike

我有一个搜索模型,它构造一个基本上是原始 SQL 的字符串。这个字符串通过一个find_by_sql调用运行,在下面第5行返回给controller(@search.query <--query是返回find_by_sql结果的方法):

1  def roster_builder
2 authorize! :access_roster_builder, current_coach
3 @search = Search.new(sport: current_coach.primary_sport, conditions: params[:search])
4
5 @athletes = @search.query.page(params[:page]).per_page(8)
6
7 if params[:refresh]
8 render "athletes_refresh"
9 else
10 render "athletes" if request.format.js?
11 end
12 end

这会返回一个数组,但我得到这个错误:

NoMethodError (undefined method `page' for #<Array:0x00000105b7add0>)

所以我发现插入以下内容可以解决这个问题:

require 'will_paginate/array'

我已经尝试将其放入我的 Controller 中,但 will_paginate.rb 初始化文件无济于事。我什至对 find_by_sql 结果执行了 .to_a——同样的错误。这里到底是什么问题?我使用的是 will_paginate 版本 3.0.4,所以它是完全最新的。在 github 上,它甚至说 require 应该可以正常工作:https://github.com/mislav/will_paginate/wiki/Backwards-incompatibility

最佳答案

查看这篇文章:https://github.com/mislav/will_paginate/issues/263

所以对于你的 Controller 来说,它看起来像这样

def roster_builder
require 'will_paginate/array'
authorize! :access_roster_builder, current_coach
@search = Search.new(sport: current_coach.primary_sport, conditions: params[:search])

# @athletes = @search.query.page(params[:page]).per_page(8)
@athletes = @search.query.paginate page: params[:page], per_page: 8

if params[:refresh]
render "athletes_refresh"
else
render "athletes" if request.format.js?
end
end

关于sql - 尽管需要 'will_paginate/array',但数组无法与 will_paginate 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com