0

良い一日。私は、ransackを使用してタイトルで記事を検索するコントローラーを持っています。オートコンプリートを使用するための情報を検索するために使用されるフィールドが必要です。現在、問題はありませんが、オートコンプリートはありません。その問題とgemhttps://github.com/crowdint/rails3-jquery-autocomplete-appで私を支援していただけませんか。

Gemfile

 gem "ransack"
    gem 'rails3-jquery-autocomplete'
    gem 'nifty-generators'
    gem 'jquery-rails', '~> 2.0'

ビューで:

<%= search_form_for @q do |f| %>
  <%= f.label t('.find') %>
  <%= f.autocomplete_field :title_cont,
    articles_autocomplete_article_title_path, :size => 15 %><br />
  <%= f.submit :value=>'Search', :class=>'fl_right' %>
<% end %>

レイアウトの責任者:

 <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
      <%= javascript_include_tag '/javascripts/jquery-ui-1.8.23.custom.min.js',
      '/javascripts/autocomplete-rails.js', '/javascripts/rails.js'  %>
    <%= stylesheet_link_tag '/stylesheets/ui-lightness/jquery-ui-1.8.23.custom.css' %>

コントローラ

class ArticlesController < ApplicationController
  autocomplete :article, :title

UPDATE1 およびroutes.rb

get 'articles/autocomplete_article_title'

ビュー内の UPDATE2<%= f.autocomplete_field :title_cont, 、 使用済みの代わりに1):title_start変更なし2):articles_article_title_startなどはエラーにつながります。

UPDATE3routes.rb を編集しました。get'articles / autocomplete_article_title'をロケール変数のスコープに移動しました。これで、機能するようになりました。..オートコンプリートのドロップダウンリストが表示されます...しかし空です:(今すぐ修正する必要があります。

UPDATE4はhttp://railscasts.com/episodes/102-auto-complete-association を使用しようとしました。しかし、それは古いバージョンのレール用です...など

UPDATE5 がroutes.rbで変更されました

  resources :articles do
    get 'autocomplete_article_title'
  end

まだ運がない。

UPDATE 6 現在の問題を理解している限り、ランサックとオートコンプリートは1つのフィールドを使用します。autocomplete_fieldタイプのフィールドをランサックするのに適しています。しかし、オートコンプリートを使用してransackでフィールド名を受け入れられるようにする方法がわかりません。手伝ってくれる?

UPDATE7 なので

   f.text_field :title_start,
      "data-autocomplete" => articles_autocomplete_article_title_path,
      :size => 15

routes.rbで

scope '(:locale)' do
  resources :users
  resources :news
  resources :articles do

  end
  get 'articles/autocomplete_article_title'
  get "news/index" , as: 'news'

# match "/news*tail" => 'news#index'
  root :to => 'News#index', as: 'news'
end
4

2 に答える 2

2

それ以外の

f.autocomplete_field :title_cont,
    articles_autocomplete_article_title_path, :size => 15 

試す

f.text_field :title_cont, "data-autocomplete" => articles_autocomplete_article_title_path

私のプロジェクトでは、meta_searchとsimple_formを使用しました。

f.input :country_name_equals, url: autocomplete_country_name_path, :as => :autocomplete
于 2012-08-24T20:11:11.740 に答える
0

2つのことをしました:ルートを再ルーティングします(最初に、最初に)

get'articles / autocomplete_article_title'
get "news / index"、as:'news'
resources:users
resources:news
resources:articles

および2)コントローラでのアクセス許可の再ルーティング

 skip_before_filter :authorize, except: [:edit, :update, :destroy]
于 2012-08-27T09:35:18.890 に答える