Получите простую форму поиска для работы с несколькими моделями без Thinking Sphinx - PullRequest
2 голосов
/ 14 января 2012

Я видел несколько постов о поиске по нескольким моделям (в частности, здесь и здесь ). Тем не менее, мне интересно, могу ли я адаптировать Railscast # 37 Райана, чтобы сделать это для трех или четырех моделей, не разбираясь в Thinking Sphinx, поскольку я новичок во всем этом.

Как я уже сказал, у меня есть несколько моделей, хотя для краткости ниже я приведу только две, и я сделал searches_controller с index и show действиями.

На моделях я включил код модели Райана:

def self.search(search)
  if search
    find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
  else
    find(:all)
  end
end

А в searches_controller у меня есть следующее:

def index
  @profiles = Profile.search(params[:search])
  @employers = Employer.search(params[:search])
end

def show
  @profiles = Profile.search(params[:search])
  @employers = Employer.search(params[:search])
end

В моем searches/show.html.erb есть следующее:

  <%= @profiles.each do |profile| %>
  <div class="question">
    <div class="questionHeader">
      <h5 class="questionTitle"><%= link_to profile.first_name, profile %></h5>
    </div>
  </div><!-- end question -->
  <% end %>
  <%= @employers.each do |employer| %>
  <div class="question">
    <div class="questionHeader">
      <h5 class="questionTitle"><%= link_to employer.name, employer %></h5>
    </div>
  </div><!-- end question -->
  <% end %>

Когда я выполняю поиск, мое шоу отображает то, что выглядит как три пустых массива [][][].

Не отказываясь от этого и не переходя к Thinking Sphinx, могу ли я что-нибудь сделать, чтобы заставить это работать, используя простую форму ниже?

<% form_tag searches_path, :method => 'get' do %>
  <p>
    <%= text_field_tag :search, params[:search] %>
    <%= submit_tag "#", :name => nil %>
  </p>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...