почему Ajax.Autocompleter устанавливает стиль для контейнера div для отображения результатов: нет? - PullRequest
1 голос
/ 16 ноября 2009

мой вызов автозаполнения сейчас ничего не показывает, потому что div, в который я вставляю ul, имеет свой стиль для отображения: none. используя firebug, я вижу, что результаты возвращаются в правильном неупорядоченном теге списка, и когда я редактирую html из консоли firebug и удаляю style = "display: none;", я вижу результаты автозаполнения. я добавил css для генерируемых тегов автозаполнения, но это перезаписывается прототипом 1.6.1 / scriptaculous 1.8.3. также я использую рельсы 1.2.2

вот код с моей точки зрения:

<script type="text/javascript">
  new Ajax.Autocompleter("autocomplete", "autocomplete_choices", "/campaigns/title_list", {tokens: ',', paramName: 'title'});
</script>

<input type="text" id="autocomplete" name="autocomplete_parameter"/>
   <div id="autocomplete_choices" class="autocomplete"></div> 

и вот мой контроллер действия и частичное:

def title_list
  camp_title = params[:title]
  @titles = Campaign.find(:all, :conditions => ["title ilike ?", "%#{camp_title}%"], :select => :title).collect { |camp| camp.title }
  render :partial => "title_list"
end     

_title_list.rhtml

<ul>
  <% @titles.each do |t| %>
      <li> <%= t %> </li>
  <% end %>
</ul>

вот что я видел в firebug:

<div style="display: none; position: absolute; left: 8px; top: 123px; width: 155px;" id="autocomplete_choices">
  <ul>
    <li class="selected"> DirecTV Defender (Best Deal Ever) </li>
    <li class=""> Defender DirecTV </li><li class=""> DirecTV Defender - Collections </li>
    <li class=""> Defender DirectTV (Gotham Direct) </li>
  </ul>
</div>

любые предложения будут с благодарностью.

-h

1 Ответ

0 голосов
/ 29 ноября 2009

Вам нужно зайти в помощник auto_complete (внутри каталога vendor) и изменить строку items.uniq на items.uniq.join Причина - изменение поведения массивов to_s в Ruby 1.9. У меня сработало нормально вот так.

...