gpt4 book ai didi

ruby-on-rails - 搜查、搜索多列、一个字段、rails 3

转载 作者:行者123 更新时间:2023-12-01 18:47:56 25 4
gpt4 key购买 nike

我是 Ruby on Rails 新手,正在创建我的第一个网站。我有一个包含 3 列的用户模型:firstnamelastnameemail。我使用 ransack 制作一个搜索引擎,我希望有一个搜索字段可以遍历每一列并显示结果。

我制作了一个user_controller.rb,如下所示:

@q = User.search(params[:q])
@users = @q.result(:distinct => true)

我的User\index.html.erb看起来像这样:

<%= search_form_for @search do |f| %>
<div class="field">
<%= f.label :firstname_cont , "Firstname" %>
<%= f.text_field :firstname_cont %>
<%= f.label :lastname_cont , "Lastname" %>
<%= f.text_field :lastname_cont %>
<%= f.label :email_cont , "Email" %>
<%= f.text_field :email_cont %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>

给我 3 个搜索字段,但我只想要一个包含名字、姓氏和电子邮件的搜索字段。

编辑1:经过更多测试后,我发现搜索字段无法同时处理名字和姓氏,或任何空格。我读过可以制作这样的 helper_method : Searching multiple fields with Ransack

当我得到搜索结果时,我会被扔进我的模型索引等:user/index.html。我可以在哪里更改此设置?

但是没有关于如何在 View 中使用它的内容。为什么这么难呢,这就是你要做的:在 Controller 中执行此操作 -> 在模型中执行此操作 -> 在 View 中执行此操作 -> 并且不要忘记像这样修复路由 ->

最佳答案

首先,在提问之前尝试在 gem 文档中搜索一下并用谷歌搜索一下 ^_^。

第一个引用的是github页面:https://github.com/ernie/ransack

查看 Ransack 的演示页面:http://ransack-demo.herokuapp.com/您应该看到第一个字段执行您想要的操作(在姓氏和名字中搜索)并查看页面的源代码,您应该看到这一行

<input id="q_first_name_or_last_name_cont" name="q[first_name_or_last_name_cont]" size="30" type="text" />

这让您了解要使用的正确谓词,您还可以在此处获得它们的列表:https://github.com/ernie/ransack/blob/master/lib/ransack/constants.rb (始终在 github 上的 gem 文档中)。

基于此,你可以做你认为类似的事情

<%= f.text_field :lastname_or_first_name_or_email_cont, :placeholder => 'full name or email contains' %>

生成“OR 条件”查询,正如您再次在演示页面中看到的那样(其中生成的查询显示为传统的 SQL 查询)

希望这有帮助

干杯

关于ruby-on-rails - 搜查、搜索多列、一个字段、rails 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com