问题标签 [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.

0 投票
2 回答
3534 浏览

ruby-on-rails - 我可以将命名范围附加到 Rails 中的链接吗?

我有一个事件模型,它有两个命名范围:

我通过创建两个新的控制器操作(名为“未来”和“过去”)从我的控制器调用这些范围:

我的控制器:

我也有这些额外操作的视图和路线。

这工作正常。我的应用程序做我想做的事,我可以链接到侧边栏中的新操作,如下所示:

现在我对这个设置的问题是,虽然它工作得很好,但我不喜欢我必须为这些额外的范围创建新的操作、视图和路由的事实。我不认为我这样做是正确的。本质上,我正在尝试过滤索引页面上的结果,但我必须创建新的操作、路由和视图来执行此操作。这似乎有点麻烦,我想知道是否有另一种方法。

如果我可以取消“未来”和“过去”的控制器操作并像这样从视图中调用作用域,那就太好了:

显然那是行不通的。我看过一个使用自定义 select_tag 帮助器的示例,但我可以完全修改它以使其在没有选择标签或 JS 的情况下工作......

坚持目前的方法更好吗

0 投票
1 回答
2772 浏览

ruby-on-rails - Rails:使用 has_scope 的多个参数(过滤器)

我正在使用 has_scope gem,我想用两个参数创建过滤——它可能是一个参数或两个参数。

我的模型(产品):

控制器的索引动作:

它有效,但只有一个:(

第二。变体(也不起作用) 在我的控制器中:

一个有效,但不能同时有效(0 个结果)。

0 投票
1 回答
1057 浏览

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()方法)。

预先感谢您的帮助!;-)

大卫

0 投票
1 回答
9281 浏览

ruby-on-rails - 在带有 Mongoid 的 Rails 中“不等于”命名范围

我有两个模型ContentContentType. 在内容模型中,我可以这样做:

现在,我正在尝试在 ContentType 上应用范围。再次在内容模型中:

但该错误表明在关联字段上应用范围的语法错误。

在模型中的关联字段上应用范围的正确方法是什么?

我也在使用has_scope gem。我也可以在控制器中应用相同的过滤器吗?就像是:

更新

为澄清起见,这里是 irb 输出:

0 投票
1 回答
1440 浏览

ruby-on-rails - 从查询参数中过滤 Rails 控制器操作

我正在寻找基于任意数量的查询参数过滤返回到 Rails 视图的记录的最佳方法,例如:

http://localhost:3000/foo?some_field=fubar&this_field_left_blank=&a_third_field=bar

我目前在做什么

我找到并使用了has_scopegem,它工作得相当好,但我的同事表示担心作用域声明的类方法与类中的字段同名,例如:

我的课看起来像

我也考虑过.where通过一个大的 switch 语句来构建一个“链”子句,但这看起来很难看。

tl;博士

是否有基于 Rails 中的查询参数过滤记录的模式和/或最佳实践?

我的最终解决方案

在阅读了 给出的答案Andrew Wei并花更多时间解决问题后,我决定responds_to在类本身上使用参数循环,如下所示:

其中每个 MyModel 类方法看起来像:

0 投票
2 回答
551 浏览

ruby-on-rails - 用于 nil 参数的 Rails has_scope gem

在我的应用程序中,我使用 has_scope gem。我已经制定了一些范围,他们正在努力在字段中查找字符串。但是现在我要添加一个新范围来查找特定参数为 nil 的所有记录 怎么做?我找不到正确的语法,现在我在模型中有它:

但它不起作用...

你可以帮帮我吗 ?

尼古拉斯

0 投票
1 回答
2192 浏览

ruby-on-rails - Rails has_scope 与 if 条件

在我的表单中,我有很多字段,当我在我的 url 上提交表单时,我看到很多空参数,比如 url?a=&b=&c= 并且我的 has_scope 模型认为我想使用这个参数,但是具有空值,但这是错误的。

我的模型和控制器的一部分:

我怎么能写这样的东西:

检查现场存在如何正确?在哪里写,怎么写?

0 投票
1 回答
680 浏览

ruby-on-rails - rails has_scope 和 sphinx 搜索

在我的应用程序中,我使用has_scopegem 和thinking sphinx,在模型中我写了如下内容:

然后,在控制器中:

但是当我尝试写类似的东西时:

我收到以下错误

但我也只是用 sphinx 搜索(当这个参数出现时),我该如何解决这个问题?

0 投票
3 回答
375 浏览

ruby-on-rails - 将 current_scopes 传递给搜索

我正在使用非常有用的has_scope gem。我有一个通过在链接中传递范围创建的索引页面。

在那个索引页面上,我可以查询 current_scopes。

我在该页面上有一个非常标准的 ransack 搜索表单,但使用它会返回没有任何范围的结果。

如何将 current_scopes 传递给搜索?我尝试使用隐藏字段,但无法正常工作。我想如果我可以通过链接传递范围,我应该能够以一种形式传递它们,但是在谷歌搜索之后我不确定这是真的。

搜索表格

指数法

0 投票
1 回答
527 浏览

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)的新控制器或类似的东西