问题标签 [ransack]

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 投票
1 回答
931 浏览

ruby-on-rails - 如何使用 ransack 将更多字段包含在 where 条件中?

我正在使用 ransack 谓词构建查询,这意味着我需要大量条件来用于 SQL 方式的 WHERE 子句。这是我作为ransancksearch方法的条件哈希:

这是控制台输出params[:q]

这是它生成的 SQL 查询:

这使:

如何在where子句中包含所有字段?

如您所见,只有:price字段保留在where子句中。我也需要:baths并且:rooms也被包括在该where条款中。

我该如何解决?

0 投票
3 回答
2338 浏览

ruby-on-rails - Ransack:可以自定义页面大小吗?

我正在使用 Spree,在产品/搜索控制器操作中它使用 Ransack。Spree 文档说 Spree 没有提供自定义页面大小的方法,所以我想我应该自定义操作本身以使用 Ransack 完全关闭分页。Ransack 是否支持不对结果进行分页或至少使分页变大的方法?

这是现有控制器操作中的代码:

当我把 @products 的类型放在后面时,它是 ActiveRecord::Relation。当我放

@products = product_scope.ransack(params[:q]).result

它也是 ActiveRecord::Relation,但在第一种情况下,rabl 模板中使用了一种方法“total_count”,而第二种方法中不存在。我已经挖掘了 ransack 的源代码,但找不到 .page 的定义位置。我想知道它是否可能包含在 Spree 引入的其中一个宝石中的 ActiveRecord::Relation 的一些 class_eval 中。

必须有人在某个地方遇到过这个问题并提出解决方案。我希望能找到那个人:P

京东

0 投票
0 回答
174 浏览

sql - 匹配所有条件洗劫

我正在尝试过滤我的用户以了解他们的外语知识。我有LanguageSkill属于Member,Language和的模型LanguageLevel

另一个重要信息是LanguageLevel具有difficulty属性(只是一个整数,因此可以对不同的语言级别进行排序)

一个成员可能具有多种语言的语言技能,但是当我查询它们时,我希望将语言和语言级别联系起来,即语言级别与所讨论的语言相关,而不是与任何语言相关。

语言字段部分如下:

如果我使用上述部分的两个部分,它会生成以下 SQL:

SELECT DISTINCT "members".* FROM "members" LEFT OUTER JOIN "language_skills" ON "language_skills"."member_id" = "members"."id" LEFT OUTER JOIN "language_levels" ON "language_levels"."id" = "language_skills"."language_level_id" WHERE ((("language_skills"."language_id" = 38 AND "language_skills"."language_id" = 59) AND ("language_levels"."difficulty" >= 5 AND "language_levels"."difficulty" >= 3)))

我不确切知道我想要 ransack 生成的 SQL 是什么,但是如果我输入 [French, Proficient] 和 [English, advanced] 我希望它可以获取所有讲法语的成员精通(或更高)水平和高级(或更高)水平的英语。

0 投票
2 回答
16083 浏览

ruby-on-rails - Rails + Ransack - 下拉列表集合?

我喜欢 ransack gem 的灵活性,但是我无法让标准的 collection_select 正常运行。也许有人可以提供帮助。

例子:

在这种情况下,此代码来自费用输入屏幕,因此第一个参数是费用对象。它应该是什么形式的洗劫?另外,我知道我需要在其中获取后缀。在此示例中,我希望 project_id_eq 成为搜索模式。

此外,我的表单位于名为“报告”的控制器和视图上,我没有将此搜索放在默认控制器中。

谢谢!

0 投票
3 回答
1942 浏览

ruby-on-rails - Ransack:使用年龄而不是出生日期

我想使用 ransack 为带有Users. 我有一个从出生日期计算年龄的小方法:

这适用于正常显示 ( as in age(@user.date_of_birth))

但是当使用 search_form_for 我不能做同样的事情:

我的问题是:如何在搜索中使用年龄而不是出生日期?

0 投票
1 回答
1022 浏览

ruby-on-rails - 修改参数键以在控制器中使用两次查询

我正在使用 Ransack 在我的应用程序上运行搜索。我有一个用户输入文本的搜索栏,文本被传递到一个搜索控制器,我在两个表中搜索查询:帖子和组

问题是我想分别对 Groups 和 Posts 运行查询:name:title然后在同一页面上提供两组结果。搜索表单使用 :name_cont ,因此当我在 Posts 上运行相同的搜索时,我试图复制此表单发送到控制器的哈希并将密钥更改为 :title_cont。

不要犹豫,要求澄清。

搜索控制器

搜索表格:

它产生的错误:

更新 1:

0 投票
3 回答
1184 浏览

ruby-on-rails - Ransack 搜索结果 - to_xls?

我有一个运行良好的搜索表单,我想为用户添加一个导出,以将结果集的内容发送到 XLS 文件。

我也成功地实现了 to_xls,但是它给了我正在搜索的对象的最大可能范围,而不是视图中显示的过滤结果。

与ransack如何使用GET方法有关吗?任何帮助都会很棒。

谢谢!

0 投票
1 回答
1281 浏览

ruby-on-rails - Ransack相反的谓词:现在

Ransack 的能力发现User具有first_name

反之,发现User没有first_name或空白:

.

很遗憾,

User.search(:first_name_present => "0") 不等于

User.search(:first_name_blank => "1")

.

反正有没有做

User.search(:first_name_present => "0") 平等的

User.search(:first_name_blank => "1"),

或者

User.search(:first_name_present => "1") 平等的

User.search(:first_name_blank => "0")?

谢谢

0 投票
1 回答
982 浏览

ruby-on-rails - 使用 Ransack 搜索 - 尽管位于实例变量中,但记录未呈现

我正在尝试在 Rails 应用程序的用户索引页面上放置一个搜索工具(类似于 Michael Hartl 的 Rails 教程中的那个),并且正在使用 Ransack gem 进行搜索。这只是对用户名的简单搜索,我已实现如下:

用户控制器:

索引视图:

问题是这样的:当我进入索引页面并搜索实际出现在那里的用户时,他们可能不会出现。例如,Linnie Bahringer 夫人出现在原始列表中,但在我搜索“lin”时没有出现在搜索结果中。

[我想在这里显示图片,但我需要五个声望点。]

自然地,我认为 Ransack 不知何故搞砸了查询。但是,当我将 @users 变量输出到页面时,通过放置

在视图中,“失踪”用户在名称列表中,你瞧,出现在结果列表中!

有谁知道为什么会发生这种情况,以及如何在不将@users 变量的内容打印到屏幕上的情况下获得“正确”的结果集?我曾尝试将 '=' 符号从@users.each do行中删除,但行为又回到了上述问题中提到的行为。

非常感谢您提供的任何帮助!

PS我可能应该显示我的整个视图文件以防万一它可能有用:

0 投票
1 回答
3405 浏览

ruby-on-rails - Ransack Gem - 搜索 undefined

我正在尝试设置 Ransack 搜索。我已将 gem 添加到 Gem 文件中,运行 bundle install。

然后我添加了:

在我添加的索引视图文件中:(屏幕名称是我的配置文件表中的有效字段)

(以及其他一些样式)

但是我得到:

未定义的方法“搜索”#

在 app/controllers/profiles_controller.rb:12:in `index'

有任何想法吗?

干杯:)