Search code examples
ruby-on-railsdecoratordraper

Can't install and use "draper" gem


I have some problems handling draper gem.

  1. install draper gem 'draper'

    $ bundle install
    

and this was successful.

  1. did rails generate draper:install

    $ rails generate draper:install
    

but I got some errors

    Expected string default value for '--test-framework'; got false (boolean)
    Expected string default value for '--helper'; got true (boolean)
    Expected string default value for '--assets'; got true (boolean)
    Expected string default value for '--test-framework'; got false (boolean)
    Expected string default value for '--helper'; got true (boolean)
    Expected string default value for '--decorator'; got true (boolean)
    Expected string default value for '--decorator'; got true (boolean)
    Expected string default value for '--jbuilder'; got true (boolean)
    Could not find generator draper:install.
  1. never mind, I did rails generate decorator Service

    Expected string default value for '--test-framework'; got false (boolean)
    Expected string default value for '--helper'; got true (boolean)
    Expected string default value for '--assets'; got true (boolean)
    Expected string default value for '--test-framework'; got false (boolean)
    Expected string default value for '--helper'; got true (boolean)
    Expected string default value for '--decorator'; got true (boolean)
    Expected string default value for '--decorator'; got true (boolean)
    Expected string default value for '--jbuilder'; got true (boolean)
    Expected string default value for '--test-framework'; got false (boolean)
          create  app/decorators/service_decorator.rb
    

this was successful.

  1. made method in services_decorator

    class ServiceDecorator < Draper::Decorator
      delegate_all
    
      def hello
        'hello'
      end
    end
    
  2. call this method from view

    <%= Service.first.decorate.hello %>
    

but this was error,

    Could not infer a decorator for ActiveRecord::Base.

Can someone teach me what was wrong and how to solve this problem? The rails version is 4.1.7, and draper version is 2.1.0


Solution

  • To remove errors while using rails generator change gem thor version to 0.19.1

    And try to add to application.rb config.autoload.path += %W(#{config.root}/app/decorators)