Как получить простой поиск в рельсах на основе учебника RailsCasts? - PullRequest
2 голосов
/ 06 мая 2009

Я следовал руководству по RailsCasts, чтобы выполнить простой поиск с автозаполнением, но оно не работает. (

просмотр / производители / индекс:

<% form_tag vendors_path, :method => 'get' do %>
    <%= text_field_with_auto_complete   :vendor, 
                                        :name,
                                        {}, 
                                        {:method => :get, :class => 'textbox'} %>
    <%= submit_tag "Search", :name => nil %>
<% end %>
</div>
<%= @searchvendor.id %>
<%= @searchterm %>

Я включил @searchterm и @ searchvendor.id в качестве шагов проверки.

Так что это должно вызвать контроллер => vendor, action => index:

def index
    @searchterm = params[:vendor][:name]

    @searchvendor = Vendor.search('checkpoint')

И метод поиска создается следующим образом для поставщика / модели:

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

Выход?

@ searchterm показывает значение, которое вводится так, как оно отображается в URL как поставщик [имя] =?

@searchvendor.id - это длинная строка, а @ searchvendor.name показывает ошибку, имя не метод.

Я в тупике. Помогите пожалуйста ...

ССЫЛКА на учебник:

http://railscasts.com/episodes/37-simple-search-form

1 Ответ

3 голосов
/ 06 мая 2009
  1. Не следует ли передать свой @searchterm в метод Vendor.search? Прохождение «контрольной точки» каждый раз, вероятно, не поможет.

  2. @ searchvendor будет содержать массив, как вы делаете find (: все). Вам нужно будет перебрать массив и сделать .name для каждого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...