2017-05-12 2 views
7

Ich habe ein montierbaren Schienen Motor in Gemfile alsRails Laden nicht montierbar Motors js

enthalten
gem 'my_engine', :path => 'engines/my_engine' 

und in Hauptanwendung als

Rails.application.routes.draw do 
    mount MyEngine::Engine => "/blog", as: 'blog_engine' 
end 

In app/engines/my_engine/app/assets/javascripts/my_engine/application.js Montage Ich habe

alert('hello'); 

In app/engines/my_engine/lib/my_engine/engine.rb habe ich

0 hinzugefügt
module MyEngine 
    class Engine < ::Rails::Engine 
    isolate_namespace MyEngine 

    # Append engine's migrations to root app's migrations 
    initializer :append_migrations do |app| 
     unless app.root.to_s.match root.to_s 
     config.paths["db/migrate"].expanded.each do |expanded_path| 
      app.config.paths["db/migrate"] << expanded_path 
     end 
     end 
    end 

    config.autoload_paths += Dir["#{config.root}/spec/support"] 

    initializer "my_engine.precompile" do |app| 
     app.config.assets.paths << Rails.root.join('/engines/my_engine/app/assets/javascripts') 
     app.config.assets.precompile << "my_engine/application.js" 
    end 

    end 
end 

Aber wenn ich nachladen http://localhost:3000/blog Warnmeldung wird nicht angezeigt? Was vermisse ich ?

+0

Ihr Setup scheint für den Motor korrekt zu sein. Können Sie posten, wie Sie die Warnung aufrufen? Das Problem liegt möglicherweise in der Art Ihres Warnanrufs. Ich gehe davon aus, dass Sie, nachdem Sie die Engine eingerichtet und der Gemfile hinzugefügt haben, '' 'bundle install''' ausgeführt haben, richtig? –

+0

Allam Matsubara Ja das ist richtig, ich lief Bündel installieren nach Angabe der Engine in Gemfile –

+0

Und Ihr Alarmruf? –

Antwort

4

Sie müssen das JavaScript auch in Ihre Seite einfügen. Haben Sie eine javascript_include_tag ziehen in der application.js Datei in Ihrem Blog-Code? Es wird oft in eines der Layouts gesteckt:

<%= javascript_include_tag 'my_engine/application' %>