【问题标题】:active_admin autocomplete with rails3-jquery-autocomplete gem使用 rails3-jquery-autocomplete gem 的 active_admin 自动完成
【发布时间】:2011-12-17 21:29:48
【问题描述】:

我在使用带有 active_admin 的 rails3-jquery-autocomplete gem 时遇到问题

我正在使用最新版本的 active_admin(来自 git),它现在依赖于 formtastic 2,我正在使用 rails3-jquery-autocomplete 的 1.04 版

undefined local variable or method `autocomplete_artist_name_records_path' for #<ActiveAdmin::DSL:0x007fde797140d0>

它不喜欢我提供的 url 路由,有什么想法我可能做错了吗?

宝石

gem 'activeadmin', :git => 'git://github.com/gregbell/active_admin.git'
gem 'rails3-jquery-autocomplete', '~> 1.0.4'

records.rb (active_admin)

ActiveAdmin.register Record do
  #...
  controller do
    autocomplete :artist, :name#, :full => true
  end

  form do |f|
    f.input :artist_name, :as => :autocomplete, :url => autocomplete_artist_name_records_path
  end
end

routes.rb

  resources :records do
    get :autocomplete_artist_name, :on => :collection
  end

我也尝试了这个我在某个地方找到的修复,但它没有改变任何东西,包括错误

https://gist.github.com/1137340

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 autocomplete activeadmin


    【解决方案1】:
    • routes.rb 中添加了admin 命名空间

      # Put this line above ActiveAdmin.routes.  Otherwise, you may get this error
      # ActiveRecord::RecordNotFound (Couldn't find Record with id=autocomplete_artist_name):
      namespace :admin do
        resources :records do
          get :autocomplete_artist_name, :on => :collection
        end
      end
      
      ActiveAdmin.routes(self)
      
    • app/assets/javascript/active_admin.js中添加了这些行

      //= require jquery
      //= require jquery_ujs
      //= require jquery-ui
      //= require autocomplete-rails
      
    • app/admin/records.rb 中,我的解决方法是使用字符串中的 url 而不是路径方法

      form do |f|
        f.input :artist_name, :as => :autocomplete, :url => '/admin/records/autocomplete_artist_name'
        f.buttons
      end
      
    • 安装 jquery css 使自动完成建议框看起来不错。请参阅此post。然后编辑 app/assets/stylesheets/active_admin.css.scss 以包含 jquery-ui css

    【讨论】:

      【解决方案2】:

      表单块正在 ActiveAdmins DSL 范围内执行。

      尝试以部分形式呈现表单以访问 url 帮助器。

      ActiveAdmin.register Post do
         form :partial => "form"
      end
      

      http://activeadmin.info/docs/5-forms.html

      【讨论】:

      • 是的,我知道我可以那样做,但它会带走所有好的 AA DSL 美感。
      猜你喜欢
      • 1970-01-01
      • 2012-01-30
      • 2012-07-27
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多