无法安装和使用 "draper" gem

Can't install and use "draper" gem

我在处理布帘时遇到了一些问题 gem。

  1. 安装布料器 gem'draper'

    $ 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.

有人可以教我哪里出了问题以及如何解决这个问题吗? rails版本为4.1.7,draper版本为2.1.0

要删除使用 rails 生成器时的错误,请将 gem thor 版本更改为 0.19.1

并尝试添加到 application.rb config.autoload.path += %W(#{config.root}/app/decorators)