在应用程序中使用自动填充功能进行搜索

时间:2012-08-24 11:05:57

标签: ruby-on-rails ruby-on-rails-3 autocomplete jquery-autocomplete ransack

美好的一天。 我讨厌使用ransack按照标题查找文章的控制器。 我需要用于查找信息以使用自动完成的字段。 目前它找到了,但没有自动完成,你能帮助我解决这个问题 和宝石https://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

更新1 和routes.rb

get 'articles/autocomplete_article_title'

更新2 在视野中,取代<%= f.autocomplete_field :title_cont, 用过的 1):title_start没有变化 2):articles_article_title_start等会导致错误。

更新3 我编辑了routes.rb。移动得到'articles / autocomplete_article_title'到区域设置变量的范围,现在它有点工作。 ..自动完成下拉列表出现...但是空:(现在必须修复那个。

更新4 试图使用http://railscasts.com/episodes/102-auto-complete-association。但它适用于较旧版本的rails ...依此类推

更新5 在routes.rb中更改了

  resources :articles do
    get 'autocomplete_article_title'
  end

还没有运气。

更新6 据我所知,目前的问题是:ransack&amp;自动完成使用一个字段。 它适用于自动填充字段类型的ransack。但我不知道如何通过自动填充的搜索工作使字段名称可以接受。你能帮忙吗?

更新7 所以在视野中

   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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

做了两件事: 重新路线(先进,先出)

  

获取'articles / autocomplete_article_title'
  得到“新闻/索引”,如:'新闻'    资源:用户
  资源:新闻
  资源:文章

和2)重新路由控制器

中的权限
 skip_before_filter :authorize, except: [:edit, :update, :destroy]