我是Ruby on Rails的新手,我創建了我的第一個站點。我有一個3列用戶模型:firstname
,lastname
和email
。即時通訊使用搜索引擎做搜索引擎,我想有一個搜索字段,將通過每一列,並顯示結果。Ransack,搜索多列,一個字段,導軌3
我已經做了user_controller.rb看起來像這樣:
@q = User.search(params[:q])
@users = @q.result(:distinct => true)
而且我用戶\ 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。我可以在哪裏改變這個?
但是,如何在視圖中使用它沒有任何意義。爲什麼這麼難以控制,這就是你要做的:在控制器中這樣做 - >在模型中做這個 - >在視圖中做這個 - >並且不要忘記修復這樣的路線 - >
尼斯,這工作就像一個魅力!我瞎了眼,但我現在明白了答案就在我面前。謝謝! – 2013-03-20 12:02:18
很高興能幫到我^ _^ – phron 2013-03-21 07:17:58
我可以問你一些更多的幫助嗎?我注意到空格或搜索多於1個單詞會導致此方法失敗。就像firstname是Foo,lastname是Bar,並且我搜索Foo吧,它會失敗..是否可以構建一個:def set_full_name .... end,然後在視圖中調用它?你如何在視圖中調用它?與helper_method?我dident設法做到這一點。還有最後一件事,如果我有搜索任何其他地方,我的結果總是會把我扔到模型索引。爲什麼是這樣? – 2013-04-04 12:33:14