一千萬個為什麽

搜索

如何使用autocomplete_field_tag傳遞params [:search]?

我正在使用 Crowdint rails3 jquery自動填充並在搜索表單上遇到問題。

這是我的 search 表單在沒有自動完成的情況下的外觀:

 'get' do %>
     "Search for a Product.....", :id => "main-search-field" %>
     nil, :id => "main-search-field-button" %>

現在,當我更改自動填充和搜索的表單時:

 'get' do %>
    "Search for a Product.....", :id => "main-search-field" %>
    nil, :id => "main-search-field-button" %>

如果我的 autocomplete_field_tag 中有 params [:search] ,這將無效:

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]

最佳答案

(免責聲明:我對此特定寶石沒有任何經驗,以下答案僅基於對其來源的簡要介紹。)

autocomplete_field_tag 方法根據源獲取五個參數,最後一個是選項哈希:

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

所以,鑒於你的控制器方法,例如需要一個名為 product_name 的參數,您的方法調用可能應該是:

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

轉載註明原文: 如何使用autocomplete_field_tag傳遞params [:search]?