2011-11-12 7 views
2

Crowdint rails3 jquery autocompleteを使用しており、検索フォームに問題があります。autocomplete_field_tagでparams [:search]を渡すには?

これは私のsearchフォームを自動補完することなく、どのように見えるかです:

<%= form_tag search_path, :method => 'get' do %> 
    <%= text_field_tag :search, params[:search], :placeholder => "Search for a Product.....", :id => "main-search-field" %> 
    <%= submit_tag "Search", :name => nil, :id => "main-search-field-button" %> 
<%end%> 

今、私はオートコンプリートや検索のために、フォームの周りに変更したとき:

<%= form_tag search_path, :method => 'get' do %> 
    <%= autocomplete_field_tag 'name','', search_autocomplete_product_name_path, params[:search], :placeholder => "Search for a Product.....", :id => "main-search-field" %> 
    <%= submit_tag "Search", :name => nil, :id => "main-search-field-button" %> 
<%end%> 

私は内部のparams[:search]を持っている場合、これは動作しません。私autocomplete_field_tag

ActionView::Template::Error (wrong number of arguments (5 for 4)) 

オートコンプリートで実際に検索できるように検索パラメータを設定するにはどうすればよいですか?


さらに詳しい情報:

class SearchController < ApplicationController 
    autocomplete :product, :name, :full => true 

    # Sunspot search. 
    def index 
    @search = Product.search do 
     fulltext params[:search] 
     paginate(:per_page => 1, :page => params[:page]) 
    end 
    @products = @search.results 
    end 
end 

# routes.rb 
get 'search/autocomplete_product_name' 
resources :search, :only => [:index] 

答えて

4

(免責事項:私は、この特定の宝石とは経験をしたん、次のような答えは、それが唯一のソースですを通じて簡単に見に基づいています。)

autocomplete_field_tagメソッドは、ソースに従って5つのパラメータをとり、最後はオプションハッシュです。

autocomplete_field_tag(name, value, source, options = {}) 

です。

autocomplete_field_tag('product_name', '', search_autocomplete_product_name_path, :placeholder => "Search for a Product.....", :id => "main-search-field") 
+0

をこれは、仕事への自動補完を取得し、私の上記のコードと同じですが、何の受け渡しについて::検索パラメータをproduct_nameあなたのメソッド呼び出しは、おそらく読んでくださいと呼ばれるパラメータを必要ですか?私は自分が信じていることがなければ、私に検索させません。私は通常、これに使用するコードを検索のために掲載します。 – LearningRoR

+0

このパラメータには何が含まれていますか?どこに設定していますか? – polarblau

+0

私の編集で私のコントローラ、ビュー、およびルートです。私はSunspotを使用しています。ブロックで見ることができるように、全文検索を行うには、その中に 'params [:search]'を渡します。 – LearningRoR