【问题标题】:Using rails has_scope gem to scope the last x number of items in array使用 rails has_scope gem 来确定数组中最后 x 个项目的范围
【发布时间】:2014-07-20 20:10:30
【问题描述】:

我正在使用 has_scope gem。

我想确定数据库中文章数组中最后 x 个项目的范围

类似这样的:

scope :last_few_items, -> num { Article.last(num) }

所以在我的查询字符串中我可以说 www.bla.com?last_few_items=2 返回数组的最后两项

但我看到的所有 has_scope 示例都使用以下语法:

scope :scope_name, -> vartopass { where(attribute_val: vartopass)}

'attribute_val' 是我数据库中的所有属性...所以我不太确定如何获得我想要的...除了创建新路由和定义 @articles = Article.last 的新控制器(2) 或类似的东西

【问题讨论】:

    标签: ruby-on-rails scope has-scope


    【解决方案1】:

    这是从您的问题中提取的:

    'attribute_val' 是我数据库中的所有属性...所以我不太确定如何获得我想要的...除了创建新路由和定义 @articles = 的新控制器Article.last(2) 或类似的东西

    你试过了吗?这其实是正确的做法,Rails原生实现last(n)

    【讨论】:

    • 是的。那行得通……我只是想知道是否有办法在查询字符串中过滤它,而不必为一些奇怪的列表创建新路由。
    • 嗯,您需要从某个地方获取数据(即多少条记录),对吧?如果您正在执行获取请求,则在您的查询字符串中是必需的。或者,您可能会使用 javascript 在客户端更新 cookie 来实现复杂的事情,这样您就可以保持 url 干净。但是有些人(很少,但仍然)正在禁用 cookie
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多