Ruby on Rails: Форма поиска - несколько полей поиска
Я пытаюсь создать приложение, которое позволяет пользователю осуществлять поиск в базе данных. Структура страницы поиска будет работать с некоторыми выпадающими меню, в которых будут отображаться данные, уже находящиеся в базе данных, для сужения поиска, а также текстовые поля, позволяющие пользователю вводить ключевые слова, такие как «имя проекта». У меня возникли проблемы с получением рельсов для сбора всей информации, введенной в форму поиска, и выполнением одного большого поиска.
Вот часть моего поискового макета:
<%= form_tag search_path, :method => 'get' do %>
<%= hidden_field_tag :direction, params[:direction] %>
<%= hidden_field_tag :sort, params[:sort] %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Project Name", :project_name => nil %>
</p>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Client", :client => nil %>
</p>
<% end %>
Вот мой индекс и поисковые действия в контроллере проекта:
def index
@projects = Project.all
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @projects }
end
end
def search
@project_search = Project.search(params[:search]).order(sort_column + ' ' + sort_direction).paginate(:per_page => 5, :page => params[:page])
end
и вот часть моего файла models / project.rb
def self.search(search)
if search
where('project_name LIKE ?', "%#{search}%") || where('client LIKE ?', "%#{search}%")
else
scoped
end
end
Как вы видите, я просто пытаюсь найти имя_проекта или клиента. Если я смогу заставить это работать, я буду расширять его на другие области.
Функциональность на данный момент заключается в том, что, когда я пытаюсь найти его в обоих полях, он перезаписывает один и выполняет только одно из полевых поисков.
Я новичок в ROR, так что, надеюсь, кто-то может помочь. Любые предложения будут оценены.
Заранее спасибо!