问题标签 [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.
ruby-on-rails - 如何使用 ransack 将更多字段包含在 where 条件中?
我正在使用 ransack 谓词构建查询,这意味着我需要大量条件来用于 SQL 方式的 WHERE 子句。这是我作为ransancksearch
方法的条件哈希:
这是控制台输出params[:q]
这是它生成的 SQL 查询:
这使:
如何在where
子句中包含所有字段?
如您所见,只有:price
字段保留在where
子句中。我也需要:baths
并且:rooms
也被包括在该where
条款中。
我该如何解决?
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
京东
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] 我希望它可以获取所有讲法语的成员精通(或更高)水平和高级(或更高)水平的英语。
ruby-on-rails - Rails + Ransack - 下拉列表集合?
我喜欢 ransack gem 的灵活性,但是我无法让标准的 collection_select 正常运行。也许有人可以提供帮助。
例子:
在这种情况下,此代码来自费用输入屏幕,因此第一个参数是费用对象。它应该是什么形式的洗劫?另外,我知道我需要在其中获取后缀。在此示例中,我希望 project_id_eq 成为搜索模式。
此外,我的表单位于名为“报告”的控制器和视图上,我没有将此搜索放在默认控制器中。
谢谢!
ruby-on-rails - Ransack:使用年龄而不是出生日期
我想使用 ransack 为带有Users
. 我有一个从出生日期计算年龄的小方法:
这适用于正常显示 ( as in age(@user.date_of_birth)
)
但是当使用 search_form_for 我不能做同样的事情:
我的问题是:如何在搜索中使用年龄而不是出生日期?
ruby-on-rails - 修改参数键以在控制器中使用两次查询
我正在使用 Ransack 在我的应用程序上运行搜索。我有一个用户输入文本的搜索栏,文本被传递到一个搜索控制器,我在两个表中搜索查询:帖子和组
问题是我想分别对 Groups 和 Posts 运行查询:name
,:title
然后在同一页面上提供两组结果。搜索表单使用 :name_cont ,因此当我在 Posts 上运行相同的搜索时,我试图复制此表单发送到控制器的哈希并将密钥更改为 :title_cont。
不要犹豫,要求澄清。
搜索控制器
搜索表格:
它产生的错误:
更新 1:
ruby-on-rails - Ransack 搜索结果 - to_xls?
我有一个运行良好的搜索表单,我想为用户添加一个导出,以将结果集的内容发送到 XLS 文件。
我也成功地实现了 to_xls,但是它给了我正在搜索的对象的最大可能范围,而不是视图中显示的过滤结果。
与ransack如何使用GET方法有关吗?任何帮助都会很棒。
谢谢!
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")
?
谢谢
ruby-on-rails - 使用 Ransack 搜索 - 尽管位于实例变量中,但记录未呈现
我正在尝试在 Rails 应用程序的用户索引页面上放置一个搜索工具(类似于 Michael Hartl 的 Rails 教程中的那个),并且正在使用 Ransack gem 进行搜索。这只是对用户名的简单搜索,我已实现如下:
用户控制器:
索引视图:
问题是这样的:当我进入索引页面并搜索实际出现在那里的用户时,他们可能不会出现。例如,Linnie Bahringer 夫人出现在原始列表中,但在我搜索“lin”时没有出现在搜索结果中。
[我想在这里显示图片,但我需要五个声望点。]
自然地,我认为 Ransack 不知何故搞砸了查询。但是,当我将 @users 变量输出到页面时,通过放置
在视图中,“失踪”用户在名称列表中,你瞧,出现在结果列表中!
有谁知道为什么会发生这种情况,以及如何在不将@users 变量的内容打印到屏幕上的情况下获得“正确”的结果集?我曾尝试将 '=' 符号从@users.each do
行中删除,但行为又回到了上述问题中提到的行为。
非常感谢您提供的任何帮助!
PS我可能应该显示我的整个视图文件以防万一它可能有用:
ruby-on-rails - Ransack Gem - 搜索 undefined
我正在尝试设置 Ransack 搜索。我已将 gem 添加到 Gem 文件中,运行 bundle install。
然后我添加了:
在我添加的索引视图文件中:(屏幕名称是我的配置文件表中的有效字段)
(以及其他一些样式)
但是我得到:
未定义的方法“搜索”#
在 app/controllers/profiles_controller.rb:12:in `index'
有任何想法吗?
干杯:)