我是Ruby on Rails的新手,我正在创建我的第一个网站.我有3列的用户模型:firstname,lastname和email.我使用ransack制作搜索引擎,我希望有一个搜索字段,它将遍历每一列并显示结果.
我创建了一个user_controller.rb,如下所示:
@q = User.search(params[:q])
@users = @q.result(:distinct => true)
Run Code Online (Sandbox Code Playgroud)
我的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 %>
Run Code Online (Sandbox Code Playgroud)
给了我3个搜索字段,但我只想要一个通过名字,姓氏和电子邮件.
编辑1:在测试了一些之后,我发现搜索字段不能同时处理名字和姓氏,也不能处理任何空格.我已经读过可以像这样制作一个helper_method: 用Ransack搜索多个字段
当我得到搜索结果时,我会被扔进我的模型索引等:user/index.我在哪里可以改变这个?
但是在视图中如何使用它没有任何意义.为什么这么辛苦,这就是你所做的:在Controller中这样做 - >在模型中做这个 - >在视图中做这个 - …