9
我遇到問題。我有一個顯示視圖,充當儀表板並引入其他模型的記錄,然後引入與其相關的模型。我有一個簡單的搜索表單,可以很好地搜索一個模型,但我不知道如何通過它的關聯模型來查看它。我不認爲全文搜索是必要的,我不確定它是如何工作的,因爲我不想要在整個網站上搜索的東西。Rails在多個模型中搜索
感謝
公司/顯示/ 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'"])
下面的答案我認爲是最好的,但如果有人有興趣,這是混亂的,但也可以工作: find(:all,:joins =>:primaries,:conditions => ['soldiers.email LIKE? OR primaries.email LIKE?OR soldiers.firstname LIKE?OR primaries.firstname LIKE?OR soldiers.lastname LIKE?OR primaries.lastname LIKE?',「%#{[search]}%」,「%#{[search] %「,」%#{[search]}%「,」%#{[search]}%「,」%#{[search]}%「,」%#{[search]}%「],: order =>'soldiers.lastname') – looloobs 2010-01-11 21:07:31