rails-3jquery-automcomplete помощник пути не возвращает правильный путь в rails 3.1.1 - PullRequest
0 голосов
/ 11 октября 2011

У меня есть модель:

class EvidenceType < ActiveRecord::Base
  has_many :evidences

  attr_accessible :name

end

Контроллер:

class EvidencesController < ApplicationController

  autocomplete :evidence_type, :name

На мой взгляд:

<%= form_tag do %>            
    <%= autocomplete_field_tag 'evidence', '', :autocomplete => autocomplete_evidence_type_name_evidences_path %>
<% end %>

В Routes.rb:

resources :evidences do
  get :autocomplete_evidence_type_name, :on => :collection
end

Рейк-маршруты дают мне:

autocomplete_evidence_type_name_evidences GET    /evidences/autocomplete_evidence_type_name(.:format) {:action=>"autocomplete_evidence_type_name", :controller=>"evidences"} 

Когда я начинаю печатать в поле автозаполнения, я вижу запрос в журнале рельсов:

Started GET "/autocomplete/evidences/autocomplete_evidence_type_name?term=co" for 127.0.0.1 at Tue Oct 11 17:45:57 +0100 2011

ActionController::RoutingError (No route matches [GET] "/autocomplete/evidences/autocomplete_evidence_type_name"):

Если я иду вручнуюна http://localhost:3000/evidences/autocomplete_evidence_type_name?term=xx, тогда я получаю желаемый фрагмент, который возвращает меня, и это заставляет меня поверить, что все, кажется, правильно склеено с помощью jquery.

Я полагаю, мне нужно добавить дополнительное автозаполнение к моемуroute (кажется хакерским?) или что мой помощник autocomplete_evidence_type_name_evidences_path должен сбросить / autocomplete с фронта.

Однако, сказав это, я подозреваю, что, возможно, я что-то делаю не так?Есть идеи?

1 Ответ

1 голос
/ 11 октября 2011

На этой строке:

<%= autocomplete_field_tag 'evidence', '', :autocomplete => autocomplete_evidence_type_name_evidences_path %>

Вам не нужно :autocomplete =>. Вот что добавляет дополнительные /autocomplete к URL. Просто используйте:

<%= autocomplete_field_tag 'evidence', '', autocomplete_evidence_type_name_evidences_path %>

Я использовал этот драгоценный камень некоторое время, и если что-то не изменилось за последние несколько месяцев, это должно исправить это для вас.

...