ruby - ActiveAdmin with Rails 5 API mode -


i'm trying activeadmin working rails 5 api mode. there's several articles this, , pretty same thing.

first, make application controller extend actioncontroller::base instead of actioncontroller::api

class applicationcontroller < actioncontroller::base   include devisetokenauth::concerns::setuserbytoken end 

then create apicontroller, every other controller extends from:

class apicontroller < actioncontroller::api  end 

add middelware:

config.middleware.use rack::methodoverride config.middleware.use actiondispatch::flash config.middleware.use actiondispatch::cookies config.middleware.use actiondispatch::session::cookiestore 

then add gems (i'm using devise_token_auth instead of devise)

gem 'devise', '> 4.x' gem 'activeadmin', github: 'activeadmin' gem 'inherited_resources', git: 'https://github.com/activeadmin/inherited_resources' 

and run bin/rails g active_admin:install. goes wrong:

      invoke    active_record       create      db/migrate/20170821114552_devise_create_admin_users.rb       create      app/models/admin_user.rb       invoke      rspec       create        spec/models/admin_user_spec.rb       invoke        factory_girl       create          spec/factories/admin_users.rb       insert      app/models/admin_user.rb        route    devise_for :admin_users         gsub    app/models/admin_user.rb         gsub    config/routes.rb       append    db/seeds.rb       create  config/initializers/active_admin.rb        exist  app/admin       create  app/admin/dashboard.rb       create  app/admin/admin_user.rb       insert  config/routes.rb     generate  active_admin:assets /home/blop/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `assets' #<rails::application::configuration:0x00000003fc9740> did mean?  asset_host (nomethoderror)         /home/blop/.rvm/gems/ruby-2.4.0/gems/activeadmin-1.1.0/lib/active_admin/engine.rb:5:in `block (2 levels) in <class:engine>'         /home/blop/.rvm/gems/ruby-2.4.0/gems/activeadmin-1.1.0/lib/active_admin/engine.rb:4:in `each'         /home/blop/.rvm/gems/ruby-2.4.0/gems/activeadmin-1.1.0/lib/active_admin/engine.rb:4:in `block in <class:engine>'         /home/blop/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:30:in `instance_exec'         /home/blop/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:30:in `run'         /home/blop/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:59:in `block in run_initializers'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:347:in `each'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:347:in `call'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each'         /home/blop/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:58:in `run_initializers'         /home/blop/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/application.rb:353:in `initialize!'         /home/blop/development/railsapp/config/environment.rb:5:in `<top (required)>'         /home/blop/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'         /home/blop/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `block in require'         /home/blop/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:258:in `load_dependency'         /home/blop/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'         /home/blop/.rvm/gems/ruby-2.4.0/gems/spring-2.0.2/lib/spring/application.rb:102:in `preload'         /home/blop/.rvm/gems/ruby-2.4.0/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'         /home/blop/.rvm/gems/ruby-2.4.0/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'         /home/blop/.rvm/gems/ruby-2.4.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'         /home/blop/.rvm/gems/ruby-2.4.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'         /home/blop/.rvm/gems/ruby-2.4.0/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'         /home/blop/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'         -e:1:in `<main>'       create  db/migrate/20170821114605_create_active_admin_comments.rb 

why use rails api if need full rails? rails api designed rid off unnecessary staff, such views, cookies, sessions, etc. staff mandatory activeadmin. don't benefits using rails api in such configuration.

so, me there 2 options:

  1. don't use rails api.
  2. create 2 separate applications (api , admin) 2 different gemfiles , shared models. in wake of convenience can store both apps in same repository.

Comments