问题标签 [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 回答
748 浏览

ruby-on-rails - .current_user 在使用范围时不起作用?

我正在使用 Devise 和 has_scope gem 来过滤选项,并且只想显示当前用户的链接。

这有效


这没有。有人可以解释我需要做什么才能完成这项工作吗?

0 投票
1 回答
707 浏览

ruby-on-rails - 将 has_scopes gem 中的 current_scopes 作为参数传递

我已经为这个问题苦苦挣扎了好几天。我是一名律师,我正在建立一个问答类型的网站以获取法律建议(是的,我是 Rails 的相对新手 :-))。

我希望用户能够按类别(即公司法、IP 等)过滤问题,然后能够按最近或流行等对它们进行次要排序。

我尝试了多种方法,最终,在尝试按最近、流行等排序时,我无法找到一种方法来传递当前选择为另一个参数的类别。

我刚刚开始使用 has_scopes gem,我从文档中看到有一个名为“current_scopes”的方法。我似乎无法弄清楚如何将视图中的 current_scopes 作为参数传递,然后可以在其中调用最近或流行的范围。从逻辑上讲,我假设 current_scopes 需要分配给控制器中的变量,但同样,无法弄清楚如何在视图中将其作为参数传递。

我当前的代码:

post.rb

post_controller.rb

_sidebar.html.erb

谢谢您,非常感谢您在此问题上提供的任何帮助。

0 投票
1 回答
485 浏览

ruby-on-rails - 如何使用 simple_form 创建表单以控制视图中的范围(通过 has_scope)

基本上,我无法弄清楚如何防止表单生成器将所有内容封装在哈希(filter {...})中,从而使表单可以轻松设置视图范围中使用的参数。

控制器中的 has_scope 代码:

视图中的 simple_form 代码:

示例输出 URL:

.../analyze/school?utf8=✓&filter%5By%5D=2016&filter%5Bdiscipline_id%5D=2&filter%5Bcompetency_id%5D=2&filter%5Btype_id%5D=1&commit=Filter

所需的输出网址:

.../analyze/school?y=2016&discipline_id=2&competency_id=2&type_id=1

第一个解决方案:只需遍历哈希并设置范围使用的参数。

(+) 这行得通,而且相当简单 (-) URL 仍然很乱 (-) 这看起来很hacky

解决方案 2:使用纯 HTML 创建表单。

(+) URL 信息更清晰 (-) 代码更混乱更脆弱 (-) 这看起来很老套

我用 Google 搜索了很多,很惊讶我没有遇到可以轻松创建与 has_scope 一起使用的表单的东西。

请让我不必使用上述解决方案之一!谢谢!

0 投票
0 回答
392 浏览

ruby-on-rails - Rails 4 has_scope 抛出未定义的方法错误

与这个人有类似的问题:带有 has_scope 的 Rails 4:静默失败

但他的回答对我的情况没有帮助。我正在使用带有以下代码的 has_scope gem:

然后使用 url http://localhost:3000/inboxes/3?by_person=Meghan我得到这个错误

对于这条线

一旦我得到它与名字一起使用,我将继续处理所有其他要过滤的东西。在这种情况下,我感谢任何帮助或指导!

0 投票
1 回答
591 浏览

ruby-on-rails - 如何在我的视图中调用/使用我的范围

我正在尝试使用 has_scope 过滤所有未通过我的 KeyRoomMapping 表连接到房间的键。

我已经在我的 Keys 模型中创建了范围,但我不知道如何在我的视图中调用范围。

楷模

控制器

看法

0 投票
1 回答
463 浏览

ruby-on-rails - 在 Rails 中使用 has_scope 过滤具有多对多表的对象

有两个表:用户和行业。用户可以涉及多个行业,很多用户属于一个行业。

工业.rb

用户.rb

行业用户.rb

它们之间的关系是many_to_many。第三个表 IndustryUser 存储两列。

现在我正在开发一个 API。我使用 has_scope gem 通过获取请求中的参数过滤用户。以上,我成功过滤了他们的专业和毕业日期。例如,过滤专业。

按毕业日期筛选。你应该提供一段时间。

当我想获得属于特定行业的用户时,我陷入了困境。这是获取查询的示例

例如。在这里,我希望它呈现所有与第二行业相关的用户。有谁知道如何使用 has_scope 过滤与多对多关系相关的对象?

0 投票
1 回答
264 浏览

ruby-on-rails - 作用域为数组类型时如何在 url 中正确写入参数?

我创建了一个范围并将其指向数组类型。

现在我想让这个范围工作。

我试图像这样在url中传递参数:

不工作。

作用域为数组类型时如何在 url 中正确写入参数?

0 投票
1 回答
255 浏览

ruby-on-rails - 使用 has_scope gem Rails 显示活动过滤器

我有一个 Entry 模型,它通过 entry_courses 拥有多个课程(通过关联拥有多个课程)。我已经在我的 entry.rb (模型)中设置了我的范围

使用它,我可以使用 URL http://localhost:3000/entries?by_courses[]=5进行过滤

这会使用 过滤正确的条目course_id = 5

所以,我的问题是,当该参数在 URL 中传递时,如何在 index.html.erb 视图的顶部显示活动过滤器(课程名称)?

模型

控制器

0 投票
1 回答
53 浏览

ruby-on-rails - 如何在这个可过滤的分页 Rails API 中优化这个活动记录查询?

我正在从Service具有多个嵌套关系(多对一和多对多)的模型构建 Rails API。

基本索引路由具有足够快的响应时间(~150 毫秒),但是当我向 URL(例如?category=MyCategory,MyOtherCategory)添加过滤器查询时,响应时间非常慢(~20 秒)。

如何优化活动记录范围和查询以解决此问题?

我可以从 rails 日志中看到,这个绝对庞大的查询是罪魁祸首:

我的模型:

我的控制器:

我正在使用has_scope在控制器中应用范围。

我应该能够在我的 API 端点的末尾添加一个查询,并将服务列表过滤到与给定类别匹配的服务列表中。

请注意,能够过滤 URL 提供的数组中是否存在任何类别,而不仅仅是一个类别,这一点很重要。

0 投票
1 回答
26 浏览

ruby-on-rails - 使用 has_scope 按 HABTM 关系中的嵌套属性进行过滤

我有一个 API,其中我在角色和电影之间建立了 HABTM 关系(一部电影有很多角色,一个角色有很多电影)。我正在尝试使用 has_scope gem 设置过滤器,这样我就可以做类似 的事情/api/characters?by_movie=:movie_id,而不是从我的 CharactersController 中的索引中获取所有角色,我只获取参与特定电影的角色。建立关系的方式允许我执行类似Characters.find(1).movies-> 返回该角色的电影列表的操作。如果我向角色发送 POST 并且我想向其中添加电影,我可以像“movie_ids”:[1,2] 那样做。

我试过这种方法没有成功:

在我的 Character.rbscope :by_movie, -> id, {where(movie_ids: id)}scope :by_movie, -> id, {where(movies: id)}我的控制器中:has_scope :by_movie, using: :id

has_scope 中的文档很少,我无法找到我的具体问题,希望你们中的一些人能帮助我,谢谢。