【问题标题】:using autocomplete in app with ransack在应用程序中使用自动完成功能与 ransack
【发布时间】:2012-08-19 22:43:33
【问题描述】:

美好的一天。 我讨厌一个控制器,它使用 ransack 按标题查找文章。 我需要用于查找信息的字段以使用自动完成功能。 目前它发现没问题,但没有自动完成,你能帮我解决这个问题吗 还有宝石https://github.com/crowdint/rails3-jquery-autocomplete-app?

宝石文件

 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 在视图中,代替&lt;%= f.autocomplete_field :title_cont, 用过的 1 ) :title_start 没有变化 2) :articles_article_title_start 等导致错误。

更新 3 我已经编辑了 routes.rb。将 get 'articles/autocomplete_article_title' 移到语言环境变量的范围内,现在可以使用了。.. 出现自动完成下拉列表...但为空:( 现在必须修复那个。

更新 4 尝试使用http://railscasts.com/episodes/102-auto-complete-association。但它适用于旧版本的导轨......等等

更新 5 在 routes.rb 中更改

  resources :articles do
    get 'autocomplete_article_title'
  end

还没有运气。

更新 6 据我了解,当前的问题是:洗劫和自动完成使用一个字段。 它适用于对 autocomplete_field 类型的字段进行洗劫。但我不知道如何使用自动完成功能使 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

【问题讨论】:

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


    【解决方案1】:

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

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

    和 2) 在控制器中重新路由权限

     skip_before_filter :authorize, except: [:edit, :update, :destroy]
    

    【讨论】:

      【解决方案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
      

      【讨论】:

      • 谢谢,我会这样做的。 meta_search 的问题在于它不适用于 rails 3 .... 作者建议将此 gem 用于 rails 3 应用程序
      • 我遵循了这里写的内容:“MetaSearch 的继任者是 Ransack。它具有 MetaSearch 没有的功能,以及一些 API 更改。我没有时间致力于使其防弹然而,所以我发布了 MetaSearch 的 1.1.x 分支来帮助迁移到 Rails 3.1。这是一种权宜之计。重要的是要注意,您的应用程序的长期迁移路径应该是向 Ransack,它以更合理的方式编写,这将使支持新版本的 Rails 变得更加容易。” github.com/ernie/meta_search
      • 是否更新了 7... 仍然没有运气。看看你自己会发生什么whispering-eyrie-8300.herokuapp.com/en/articles。自动完成框出现,没有选择!如果几天后没有任何反应,我想我会尝试在没有 gem 的情况下编写自动完成功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 2017-04-14
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      相关资源
      最近更新 更多