Я реализовал «простую форму поиска» (railscasts # 37) в своем приложении, но мне интересно, как:
1.) Я не могу отобразить результаты, если поле ключевых слов пусто или если страница индекса загружена (я пробовал поиск! = "". Возможно, есть лучший способ)
2.) Я могу добавить функцию, которая позволяет избежать нескольких пробелов в поиске. (если пользователи написали что-то вроде «benoit +++» или «++ benoit» в окне поиска, оно должно отображать результаты)
Я не хочу использовать мыслящего сфинкса, как при развертывании на герою
Вот код:
В моей модели пользователя (user.rb)
def self.search(search)
if search and search != ""
find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
end
На мой взгляд (views / users / index.html.erb)
<% form_tag users_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
<% if @users and not @users.empty? %>
<% @users.each do |user| %>
<p><%= link_to "#{user.name}", user %></p>
.
.
.
<% end %>
<% end %>
и в моем контроллере (users_controller.rb)
def index
@users = User.search(params[:search])
end
Спасибо за любую помощь или ресурсы !!