0

アプリケーションの機能のチャンクをカプセル化する宝石を作成しています。それらの宝石は本質的にrakeタスクを実行しますが、タスクを実行するとbundle exec rake:assets:precompile、次のエラーが発生します

rake aborted!
Bundler::GemRequireError: There was an error while trying to load the gem 'gem-name'.
/Users/tonyedwardspz/myprojects/westcornwallevents/config/application.rb:8:in `<top (required)>'
/Users/tonyedwardspz/myprojects/westcornwallevents/Rakefile:4:in `require'
/Users/tonyedwardspz/myprojects/westcornwallevents/Rakefile:4:in `<top (required)>'
NameError: uninitialized constant GemName::Rails::Railtie
/Users/tonyedwardspz/myprojects/westcornwallevents/config/application.rb:8:in `<top (required)>'
/Users/tonyedwardspz/myprojects/westcornwallevents/Rakefile:4:in `require'
/Users/tonyedwardspz/myprojects/westcornwallevents/Rakefile:4:in `<top (required)>'

railtie に関連するモジュールのコードは次のとおりです。

require 'rails'

module GemName
  module Rails
    class Railtie < Rails::Railtie
      railtie_name :gem_name

      rake_tasks do
        load "tasks/gem_name.rake"
      end
    end
  end
end

このエラーが発生する理由はありますか?

4

1 に答える 1

0

エラーは、クラス定義の構文にあります。次のようにコードを更新すると、rake タスクを実行できるようになります。

class Railtie < Rails::Railtie

class Railtie < ::Rails::Railtie
于 2016-04-19T11:19:11.400 に答える