2016-04-07 72 views
0

我的医生有一个专业有专业的医生显示专业,职业模式也有专业领域,专业属于医生。请让我知道如何根据地区和专业搜索医生。搜索模型包含名称,性别,区域,规格等字段。如果可以,请提供代码。
这是我的搜索模式搜索相关搜索红宝石轨道上

class Search < ActiveRecord::Base 
#to help in searching methodolgy 
    belongs_to :patient 
    def search_docs 
    doctors = Doctor.all; 
    profession = Profession.all; 
    doctors = doctors.where(["name LIKE ?",name]) if name.present? 
    doctors = doctors.where(["sex LIKE ?",sex]) if sex.present? 
    doctors = profession.where(["spec LIKE ?",spec]) if spec.present? 
    doctors = doctors.where(["area LIKE ?",doctors.profession.area]) if area.present? 
    return doctors 
    end 
end 

while in my controller 

def show 
    @search = Search.find(params[:id]) 

end 

and in my show view 

<% if @search.search_docs %> 
<%[email protected]_docs.inspect%> 
    <% @search.search_docs.each do |c| %> 
     <div class="search-results"> 
     <div class="row"><div class="col-md-1"> <img class="doc-profile-pic img img-rounded" alt="pciture"></div> 
     <div class="col-md-9 search-heading"><%=c.name%> 
      <div class="row"><div class="search-details"><% if c.profession%><%=c.profession.spec%><%else%><%="Nothing"%><%end%></div></div> 
      <div class="row"><div class="search-details1"><% if c.profession%><%=c.profession.fee%><%else%><%="Nothing"%><%end%></div></div> 
      <%=link_to "Profile", :controller => "doctors", :action => "profile", :id =>c.id , :patid => @search.patient_id %> 
     </div> 
     </div> 
     </div> 
    <%end%> 

<% else %> 
<p>Sorry, we have no physician that match your criteria. </p> 
<p>We are adding new Doctors daily, come back soon</p> 

<%end%> 

回答

0

试试这个, 我觉得自己没必要搜索模式,简单地把这个代码在你的医生的模型

def self.search(query) 
    final_query = [] 
    final_query.push("professions.spec = '#{query[:spec]}'") if query[:spec].present? 
    final_query.push("professions.area = '#{query[:area]}'") if query[:area].present?  
    doctors.joins(:profession).where(final_query.join(" AND ")) 
    end 

,并呼吁医生级别这个方法你在哪里显示搜索结果如果param[:query].present?