Не удается установить и использовать драгоценный камень драпировщика

У меня есть некоторые проблемы с обращением с драгоценным камнем draper.

  1. установить драгоценный камень драпировщика «дрейпер»

    $ bundle install
    

и это удалось.

  1. сделал rails generate draper:install

    $ rails generate draper:install
    

но у меня есть некоторые ошибки

    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. неважно, я сделал 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
    

это было успешно.

  1. сделал метод в services_decorator

    class ServiceDecorator < Draper::Decorator
      delegate_all
    
      def hello
        'hello'
      end
    end
    
  2. вызвать этот метод из представления

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

но это была ошибка,

    Could not infer a decorator for ActiveRecord::Base.

Может ли кто-нибудь научить меня, что было не так и как решить эту проблему? Версия рельсов — 4.1.7, а версия драпировки — 2.1.0.


person Hiromu Masuda    schedule 07.06.2017    source источник


Ответы (1)


Чтобы удалить ошибки при использовании генератора рельсов, измените версию gem thor на 0.19.1.

И попробуйте добавить к application.rb config.autoload.path += %W(#{config.root}/app/decorators)

person Stanislav Kr.    schedule 18.07.2017
comment
У меня это не работало в Rails 5.1 — вместо этого мне нужно было использовать config.autoload_paths << File.expand_path('/app/decorators', __dir__). - person John Y; 10.08.2017