문제가 있습니다. 나는 대시 보드의 역할을하는 쇼 뷰를 가지고 있으며, 다른 모델의 레코드를 가져온 다음 그 모델과 연관된 모델을 제공합니다. 한 모델을 검색해도 괜찮은 간단한 검색 양식이 있지만 관련 모델을 통해 검색하는 방법을 알지 못합니다. 전체 텍스트 검색이 필요하다고 생각하지 않으며 전체 사이트에서 검색 할 무언가를 원하지 않기 때문에 어떻게 작동하는지 확신 할 수 없습니다.여러 모델에서 레일 검색
감사
회사/쇼/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 => : primary, : conditions => [ 'soldiers.email LIKE? OR primaries.lastname LIKE? ', "% # {[search]} %", "% # {[search]", "" % # {[search]} % ","% # {[search]} % ","% # {[search]} % ", : order => 'soldiers.lastname') – looloobs