2017-03-22 3 views
1

Ich baue ein Rails-Plugin, das derzeit Controller und Modelle für eine App bereitstellt. Allerdings bekomme ich einen fehlenden Vorlagenfehler, wenn es um Ansichten geht. Ich habe folgendes:Ansichten in einem Rails-Plugin einschließen

%w{ models controllers views }.each do |dir| 
    path = File.join(File.dirname(__FILE__), 'app', dir) 
    $LOAD_PATH << path 
    ActiveSupport::Dependencies.autoload_paths << path 
    ActiveSupport::Dependencies.autoload_once_paths.delete(path) 
end 

Die Controller und Modelle sind geladen, aber keine Ansichten. Die Rails guide sagt, es kann getan werden, hat aber kein Beispiel. Gibt es eine Möglichkeit, sie (oder eine ähnliche Alternative) einzuschließen?

+0

Was ist Edelstein, den Sie verwendet haben – Tsao

+0

TBH der Plugin-Ansatz wurde zugunsten von [Motoren] (http://edgeguides.rubyonrails.org/engines.html) auslaufen. Es könnte auch diesen Prozess erleichtern. – engineerDave

+0

Es scheint, dass es bereits hier gefragt und beantwortet wurde: http://stackoverflow.com/questions/2446402/rails-render-a-partial-from-a-plugin –

Antwort

0

Sie haben die Version, mit der Sie arbeiten, nicht mit einbezogen ... Grund ist wichtig, nachdem Rails 4 herausgekommen ist - Sie sollten keine Plugins mehr machen ... Gem Vs Plugin Vs Engine in Ruby on Rails.

Wenn Sie nicht ein Vermächtnis app unterstützt, würde empfehlen, mit einem ‚Schienen-Motor‘ geht, die Devise Gem ist ein gutes Beispiel ... es ist ein sich selbst verkapselt app, mit einer eigenen View-Dateien & genau klingt wie was du versuchst zu tun. Darüber hinaus zeigt es, dass Sie sogar Generatoren verwenden können, um Ihre Standardansichten/Controller aus der Engine zu entfernen. & Ändern Sie das grundlegende Routing, wenn jemand Ihre Arbeit weiter anpassen muss.

Verwandte Themen