所以我所擁有的是一個模型Referent
具有多個屬性,例如nom
和prenom
。 我能夠使用一個搜索值在我的模型中搜索每個屬性。但後來我試着有一個text_field
爲每個屬性,所以nom
我會有一個text_field
和prenom
我會有另一個。搜索多個字段具有多個值
所以它會搜索所有Referent
誰有nom
和prenom
但我不能分開這兩個搜索。現在,它只是採取的價值之一,並在這兩個nom
和prenom
具有相同值
查看搜索:
<h2>Search Referent</h2>
<%= form_tag(referents_path, :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "Nom" %>
<%= text_field_tag :search, params[:search], placeholder: "Prenom" %>
<%= submit_tag "Search", class: 'btn btn-info' %>
<% end %>
控制器:
def index
@referents = Referent.all
if params[:search]
@referents = Referent.search(params[:search]).order("created_at DESC")
else
@referents = Referent.all.order("created_at DESC")
end
end
型號:
def self.search(search)
where("nom || prenom ILIKE ?", "%#{search}%")
end
現在它似乎只取第二個0123的值並將其用於搜索。我正在使用postgresql。
你的實現是使用兩個文本框,而且每一個正在尋找一個不同的數據庫列。 *那麼爲什麼不發送兩個不同的HTTP參數*? –
隨着你現在的實現,你總會遇到'prenom'字段正在用'nom'值進行搜索的問題,反之亦然。 –
這個問題不是很清楚。你有沒有添加兩個搜索字段?一個用於nom,另一個用於prenom?搜索應該是AND還是OR?正如「nom Like%nom_search%OR prenom LIKE%prenom%?或者」nom Like%nom_search%AND prenom LIKE%prenom%?? – Surya