Вот код «простой формы поиска» (спасибо jordinl), которую я пытаюсь улучшить.Я хотел бы добавить случай, если совпадение не найдено.
Итак, есть представление (views / users / index.html.erb)
<% form_tag users_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
<% @users.each do |user| %>
<p><%= link_to "#{user.name}", user %></p>
.
.
.
<% end %>
Контроллер (users_controller).rb)
def index
@users = User.search(params[:search])
end
и метод в модели пользователя:
def self.search(search)
search.blank? ? [] : all(:conditions => ['name LIKE ?', "%#{search.strip}%"])
end
Я попытался сделать следующее:
def self.search(search)
if search.to_s.size < 1
[]
else
if @users.size > 0
all(:conditions => ['name LIKE ?', "%#{search.strip}%"])
else
render :text => "No result found"
end
end
end
, сообщив об ошибке: «У вас естьнулевой объект, когда вы этого не ожидали! ... "(нет экземпляра в массиве).Затем я попытался добавить
<% if @users? %>
<% @users.each do |user| %>
.
.
.
в представлении.Но это тоже не работает.
Мне было бы приятно понять, почему я ошибаюсь в этом.Спасибо!