2010-01-05 5 views
0

Я недавно установил этот плагин, и я хотел создать с ним поле тега, например StackOverFlow.Auto_complete_for question

Когда я поставил следующий синтаксис на моей AnnouncementsController (я хочу, чтобы пометить объявления), он прекрасно работает:

auto_complete_for :announcement, :title 
    protect_from_forgery :only => [:create, :delete, :update] 

Кроме того, я должен был добавить синтаксис маршрутов, а также заставить его работать:

map.resources :announcements, :collection => {:auto_complete_for_announcement_title => :get } 

Теперь, когда я пытаюсь сделать то же самое с тегами, в то время, когда я создаю новое объявление, я просто заменяю слово «объявление» на «тег» и «название» на «имя», и он выиграл Не работай. Тег ссылается на таблицу моих тегов в базе данных.

Ошибка говорит следующее:

<h1> ActiveRecord::RecordNotFound 

    in AnnouncementsController#show </h1> 
<pre>Couldn't find Announcement with ID=auto_complete_for_tag_name</pre> 

Может кто-нибудь сказать мне, что я делаю неправильно?

Спасибо, Brian

ответ

1

По вашему мнению вы, вероятно, хотите изменить:

<%= text_field_with_auto_complete :announcement, :title %> 

к:

<%= text_field_with_auto_complete :tag, :name %> 

, чтобы заставить его работать, еще раз взглянуть на ошибку это дает , он все еще вызывает объявление.

--- редактировать:

из autocomplete source:

def text_field_with_auto_complete(object, method, tag_options = {}, completion_options = {}) 
+0

Я не понимаю, что-то: что же параметры для text_field_with_auto_complete сослаться? И тот же вопрос для метода auto_complete_for. Потому что я пытаюсь заставить его работать с тегами из моего объявления «Объявления». –

+0

Можете ли вы разместить код своего вида? – makevoid

+0

Тот, который работает следующая: Tags2: <% = text_field_with_auto_complete: анонс,: название, {}, {: метод => : получить}%> И тот, который не работает, является следующее: Тэги: <% = text_field_with_auto_complete: tag,: name, {}, {: method => : get}%> –

0

Ну, я, наконец, получил ответ на мою проблему.

я пропускал следующий routes.rb:

map.auto_complete '/:controller/:action', 
    :requirements => { :action => /auto_complete_for_\S+/ }, 
    :conditions => { :method => :get } 

Мой новый вопрос теперь это работает следующим образом:

Что делать, если я хотел мультизадачу тэга объявления, например: " Ruby, C# ". Должен ли я изменить логику плагина или есть функция, чтобы сделать эту работу? Причина прямо сейчас, он проверяет текст text_field, не выделяя новое слово после запятой или каким-либо разделителем.

Спасибо, Brian

+0

Я мог бы сделать это с помощью "token => ','" после параметра "method" в представлении. –