【问题标题】:Can't install and use "draper" gem无法安装和使用“draper”gem
【发布时间】:2017-06-07 03:23:36
【问题描述】:

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

  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.

谁能教我出了什么问题以及如何解决这个问题? rails版本是4.1.7,draper版本是2.1.0

【问题讨论】:

    标签: ruby-on-rails decorator draper


    【解决方案1】:

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

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

    【讨论】:

    • 这在 Rails 5.1 中对我不起作用——我需要改用 config.autoload_paths &lt;&lt; File.expand_path('/app/decorators', __dir__)
    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 2018-01-29
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多