我嘗試傳遞2個搜索選項。第一個[:q]用於訪問者的輸入文本,另一個來自模型露營「nomdep」(如英文部分)。當我嘗試通過輸入搜索它的作品,但因爲我嘗試添加select_tag我有一個錯誤帶elasticsearch的Select_tag
錯誤 未定義的方法'地圖」的零:NilClass
我迷路了,做ü有什麼想法?
對不起,我是法國人。
Home_controler.rb
def index
if params[:q].nil?
"Entrez un mot clef"
else
@campings = Camping.__elasticsearch__.search params[:q,:nomdep]
@camping = Camping.all
end
end
def result
if params[:q].nil?
@campings = []
else
@campings = Camping.__elasticsearch__.search(params[:q]).page(params[:page]).per(14).results
end
end
查看
<div class="search">
<%= form_tag(result_path, method: :get) %>
<%= text_field_tag :q, params[:q], class:"search-query form-control" %>
<%= select_tag(:nomdep, options_for_select(@camping)) %>
<%= submit_tag "Partez", class:"btn btn-danger", name: nil %>
</div>
編輯 現在我沒有任何錯誤,但搜索不工作,如果[:Q]空。所以,如果我只select_tag =>沒有結果。
這是怎麼解決的?
我的全home_controller.rb
class HomeController < ApplicationController
def index
@camping = Camping.all
if params[:q].nil?
"Entrez un mot clef"
else
@campings = Camping.__elasticsearch__.search params[:q, :nomdep]
end
end
def result
if params[:q].nil?
@campings = []
else
@campings = Camping.__elasticsearch__.search(params[:q]).page(params[:page]).per(14).results
end
end
end
我看來
<div class="search">
<%= form_tag(result_path, method: :get) %>
<%= select_tag :nomdep, options_from_collection_for_select(@camping, :id, :nomdep), prompt: "Département" %>
<%= text_field_tag :q, params[:q], class:"search-query form-control" %>
<%= submit_tag "Partez", class:"btn btn-danger", name: nil %>
</div>
感謝@Baradzed但沒有作品完全。我可以顯示頁面主頁,但有兩件事。 1)部門的名字不顯示我只有這個<露營%3A0X9F9C888> ... 2)當我提交搜索與[:Q]空和選擇協會我沒有結果。那麼我能做些什麼來解決這個問題? – nicolaswecandoit
我編輯我的主題添加def結果,我該如何做搜索工作? – nicolaswecandoit
要解決點(1):Rails不知道Camping對象的哪些屬性構成選擇選項的值和文本。你可以使用另一個幫助器,並指定這些屬性,例如:'options_from_collection_for_select(@camping,:id,:nomdep)' – Baradzed