2016-01-20 67 views
1

我在此之後創建了一個Mountable引擎,我在lib中創建了一個文件類。可掛載引擎 - 未初始化的常量Customer(NameError)

像這樣:

路徑:/lib/dog.rb

類:

class Dog 
     def initialize(breed, name) 
     @breed = breed 
     @name = name 
    end 

    def bark 
     puts 'Ruff! Ruff!' 
    end 

    def display 
     puts "I am of #{@breed} breed and my name is #{@name}" 
    end 
    end 

我在 /config/initializers/scheduler.rb一個初始化與內容:

d = Dog.new('Labrador', 'Benzy') 

當我開始我的軌我收到的應用這個錯誤:

uninitialized constant Dog (NameError) 

我試圖創建/配置一個application.rb中的文件/與內容require '/lib/customer.rb'require 'rails/all',但不起作用。

+0

敢肯定你需要使用'引擎名稱:: Dog.new( 「拉布拉多」 ,「Benzy」)' –

+0

Doest work same error @ j-dexx – lolix

+0

初始化程序運行時沒有設置環境聲音,所以rails尚未加載所有文件。 –

回答

1

你是否按照這裏的指南? http://guides.rubyonrails.org/engines.html

它說,包括你的類如:

module Dog 
    class Engine < ::Rails::Engine 
    end 
end 

,但我不相信這只是你的情況。你需要經過幾個步驟,它不是作爲一個普通的Ruby庫來實現的,它只是被包含在內。

+1

我的默認engine.rb是:'module Alarm class Engine <:: Rails :: Engine isolate_namespace Alarm end end'我該如何添加? – lolix

0

我面臨同樣的問題,模塊不加載。通過指定autoload_path在engine.rb

解決問題在發動機的lib/engien_name/engine.rb

class Engine < ::Rails::Engine 
    config.autoload_paths += %W(#{config.root}/lib/modules) 
end 
相關問題