【发布时间】:2013-03-02 21:01:10
【问题描述】:
我是 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: 在进行了更多测试后,我发现搜索字段无法同时处理名字和姓氏或任何空格。我读过可以像这样制作一个 helper_method: Searching multiple fields with Ransack
当我得到搜索结果时,我会进入我的模型索引等:用户/索引。我在哪里可以更改?
但是没有关于如何在视图中使用它。为什么很难做到这一点,这就是你要做的:在控制器中这样做->在模型中这样做->在视图中这样做->不要忘记像这样修复路由->
【问题讨论】:
标签: ruby-on-rails search ransack