问题标签 [has-scope]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 我可以将命名范围附加到 Rails 中的链接吗?
我有一个事件模型,它有两个命名范围:
我通过创建两个新的控制器操作(名为“未来”和“过去”)从我的控制器调用这些范围:
我的控制器:
我也有这些额外操作的视图和路线。
这工作正常。我的应用程序做我想做的事,我可以链接到侧边栏中的新操作,如下所示:
现在我对这个设置的问题是,虽然它工作得很好,但我不喜欢我必须为这些额外的范围创建新的操作、视图和路由的事实。我不认为我这样做是正确的。本质上,我正在尝试过滤索引页面上的结果,但我必须创建新的操作、路由和视图来执行此操作。这似乎有点麻烦,我想知道是否有另一种方法。
如果我可以取消“未来”和“过去”的控制器操作并像这样从视图中调用作用域,那就太好了:
显然那是行不通的。我看过一个使用自定义 select_tag 帮助器的示例,但我可以完全修改它以使其在没有选择标签或 JS 的情况下工作......
坚持目前的方法更好吗
ruby-on-rails - Rails:使用 has_scope 的多个参数(过滤器)
我正在使用 has_scope gem,我想用两个参数创建过滤——它可能是一个参数或两个参数。
我的模型(产品):
控制器的索引动作:
它有效,但只有一个:(
第二。变体(也不起作用) 在我的控制器中:
一个有效,但不能同时有效(0 个结果)。
ruby-on-rails - 如何在 has_scope 中使用作为可标记的行为?
我正在构建一个返回帖子列表的 API(localhost:3000/api/v1/posts):
这些帖子使用acts-as-taggable-on gem 进行标记。我希望能够使用has_scope gem (localhost:3000/api/v1/posts?tag_id=1) 根据这些标签过滤它们:
但我不知道如何by_tag_id
在我的模型中设置范围,因为acts-as-taggable-on 文档仅解释了如何根据标签名称查找对象(使用tagged_with()
方法)。
预先感谢您的帮助!;-)
大卫
ruby-on-rails - 在带有 Mongoid 的 Rails 中“不等于”命名范围
我有两个模型Content
和ContentType
. 在内容模型中,我可以这样做:
现在,我正在尝试在 ContentType 上应用范围。再次在内容模型中:
但该错误表明在关联字段上应用范围的语法错误。
在模型中的关联字段上应用范围的正确方法是什么?
我也在使用has_scope gem。我也可以在控制器中应用相同的过滤器吗?就像是:
更新
为澄清起见,这里是 irb 输出:
ruby-on-rails - 从查询参数中过滤 Rails 控制器操作
我正在寻找基于任意数量的查询参数过滤返回到 Rails 视图的记录的最佳方法,例如:
http://localhost:3000/foo?some_field=fubar&this_field_left_blank=&a_third_field=bar
我目前在做什么
我找到并使用了has_scope
gem,它工作得相当好,但我的同事表示担心作用域声明的类方法与类中的字段同名,例如:
我的课看起来像
我也考虑过.where
通过一个大的 switch 语句来构建一个“链”子句,但这看起来很难看。
tl;博士
是否有基于 Rails 中的查询参数过滤记录的模式和/或最佳实践?
我的最终解决方案
在阅读了 给出的答案Andrew Wei
并花更多时间解决问题后,我决定responds_to
在类本身上使用参数循环,如下所示:
其中每个 MyModel 类方法看起来像:
ruby-on-rails - 用于 nil 参数的 Rails has_scope gem
在我的应用程序中,我使用 has_scope gem。我已经制定了一些范围,他们正在努力在字段中查找字符串。但是现在我要添加一个新范围来查找特定参数为 nil 的所有记录 怎么做?我找不到正确的语法,现在我在模型中有它:
但它不起作用...
你可以帮帮我吗 ?
尼古拉斯
ruby-on-rails - Rails has_scope 与 if 条件
在我的表单中,我有很多字段,当我在我的 url 上提交表单时,我看到很多空参数,比如 url?a=&b=&c= 并且我的 has_scope 模型认为我想使用这个参数,但是具有空值,但这是错误的。
我的模型和控制器的一部分:
我怎么能写这样的东西:
检查现场存在如何正确?在哪里写,怎么写?
ruby-on-rails - rails has_scope 和 sphinx 搜索
在我的应用程序中,我使用has_scope
gem 和thinking sphinx
,在模型中我写了如下内容:
然后,在控制器中:
但是当我尝试写类似的东西时:
我收到以下错误
但我也只是用 sphinx 搜索(当这个参数出现时),我该如何解决这个问题?
ruby-on-rails - 将 current_scopes 传递给搜索
我正在使用非常有用的has_scope gem。我有一个通过在链接中传递范围创建的索引页面。
在那个索引页面上,我可以查询 current_scopes。
我在该页面上有一个非常标准的 ransack 搜索表单,但使用它会返回没有任何范围的结果。
如何将 current_scopes 传递给搜索?我尝试使用隐藏字段,但无法正常工作。我想如果我可以通过链接传递范围,我应该能够以一种形式传递它们,但是在谷歌搜索之后我不确定这是真的。
搜索表格
指数法
ruby-on-rails - 使用 rails has_scope gem 来确定数组中最后 x 个项目的范围
我正在使用 has_scope 宝石。
我想确定数据库中文章数组中最后 x 个项目的范围
像这样的东西:
所以在我的查询字符串中,我可以说 www.bla.com?last_few_items=2 返回数组的最后两项
但我看到的所有 has_scope 示例都使用以下语法:
其中'attribute_val'是我数据库中的所有属性......所以我不确定如何获得我想要的......除了创建一个新路线和一个定义@articles = Article.last(2)的新控制器或类似的东西