我是Ruby on Rails的新手,正在创建我的第一个网站。我有一个用户模型,其中有3列: firstname
(名字),lastname
(姓氏)和email
(电子邮件)。我正在使用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: 经过测试,我发现搜索栏无法处理名字和姓氏,或任何空格。我已经阅读到可以像这样制作帮助方法: 使用Ransack搜索多个字段
当我获得搜索结果时,我被抛入模型索引等:用户/索引。我在哪里可以更改这个?
但是没有关于如何在视图中使用它的信息。为什么很难直接说明,这就是你需要做的:在控制器中这样做->在模型中这样做->在视图中这样做->并且别忘了像这样修复路由->