Ich habe ein Problem. Ich habe eine Show-Ansicht, die als Dashboard fungiert und Datensätze von anderen Modellen und dann zugeordneten Modellen einfügt. Ich habe ein einfaches Suchformular, das gut funktioniert, um ein Modell zu durchsuchen, aber ich weiß nicht, wie es durch die zugehörigen Modelle aussehen soll. Ich glaube nicht, dass eine Volltextsuche notwendig ist, und ich bin mir nicht sicher, wie es funktionieren würde, weil ich nicht möchte, dass etwas über die gesamte Website hinweg gesucht wird.Rails Suche über mehrere Modelle
Dank
Unternehmen/show/1
<div id="form">
<div class="search">
<% form_tag battalion_company_path, :method => :get do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
</div>
</div>
<div id="bc_box">
<% @soldiers.each do |soldier| %>
<div id="bc_focus">
<div class="right">
<%= link_to image_tag("../images/buttons/info.png", :border=>0), battalion_company_soldier_path(@battalion, @company,soldier) %>
<%= link_to image_tag("../images/buttons/edit.png", :border=>0), edit_battalion_company_soldier_path(@battalion, @company,soldier) %>
</div>
<%=h soldier.rank %> <%=h soldier.lastname %><br />
Cell: <%=h soldier.cellphone %><br />
<% soldier.primaries.each do |primary| %>
<p>
<%=h primary.firstname %> <%=h primary.lastname %> (<%=h primary.relationship %>)<br />
(c):<%=h primary.cellphone %><br />
<%=h primary.email %><br />
</p>
<% end %>
</div>
<% end %>
</div>
soldier.rb
def self.search(search)
if search
find(:all, :conditions => ['email LIKE ? OR lastname LIKE ? OR firstname LIKE ?', "%#{search}%", "%#{search}%", "%#{search}%"])
else
find(:all, :order => 'lastname')
end
end
companies_controller
@soldiers = @company.soldiers.search(params[:search])
@primary = @company.primaries.find(:all,:conditions => ["relationship = 'Spouse'"])
Die folgende Antwort denke ich ist die beste, aber nur für den Fall jemand interessiert ist, das ist chaotisch aber funktioniert auch: finden (: alle,: joins =>: Vorwahlen,: Bedingungen => ['soldiers.email WIE? OR primaries.email LIKE? ODER soldaten.vorname LIKE? OR primaries.vorname LIKE? ODER soldaten.name like? Or primaries.lastname LIKE? ', "% # {[Search]}}%", "% # {[search] }% ","% # {[Suche]}% ","% # {[Suche]}% ","% # {[Suche]}% ","% # {[Suche]}% "],: order => 'soldiers.lastname') – looloobs