active_admin使用rails3-jquery-autocomplete gem自动完成

时间:2011-10-29 15:31:22

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

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

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

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

它不喜欢我提供的网址路线,任何想法我可能做错了什么?

宝石

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

2 个答案:

答案 0 :(得分:3)

  • admin

    中添加了routes.rb名称空间
    # 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

答案 1 :(得分:1)

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

尝试在部分中呈现表单以访问url助手。

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

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