2010-01-11 18 views
9

Bir sorunum var. Bir gösterge panosu gibi davranan ve diğer modellerin kayıtlarını ve ardından bunlarla ilişkili modelleri getiren bir görünüm görünümüm var. Tek bir modelde arama yapmak için iyi çalışan basit bir arama formum var, ancak bununla ilişkili modellerini nasıl görebileceğimi bilmiyorum. Tam bir metin aramasının gerekli olduğunu düşünmüyorum ve nasıl çalışacağından emin değilim çünkü tüm sitede arama yapacak bir şey istemiyorum.Raylar Birden Fazla Modelde Karşılaşıyor

Teşekkür

şirket/gösteri/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'"]) 
+2

Aşağıdaki cevabın en iyisi olduğunu düşünüyorum ama sadece birisinin ilgilenmesi durumunda, bu çok dağınık ama işe yarıyor: bul (: all,: joins =>: primaries,: conditions => ['soldiers.email LIKE? OR primaries.email LIKE? VEYA soldiers.firstname LIKE? OR primaries.firstname LIKE? VEYA soldiers.lastname LIKE? VEYA primaries.lastname LIKE? ', "% # {[Search]}%", "% # {[search] }% ","% # {[search]}% ","% # {[search]}% ","% # {[search]}% ","% # {[search]}% "],: order => 'soldiers.lastname') – looloobs

cevap

4

nasıl app arkasında bir arama motoru hakkında gibi Thinking Sphinx? Önbelleğe alma ve başka birine arama yapmanın zorlu çalışmalarını bırakın ve Rails uygulamanızın sonuca ulaşmasına izin verin.

+0

Ah Yanlış anlaşıldım ve Thinking Sphinx'in sadece uygulama genişliğinde olduğunu düşündüm. Bana bunu söylediğin için teşekkürler. – looloobs

İlgili konular