2017-10-24 1 views
0

Ich verwende Rails 5 API und versuche, einen CKeditor WYSIWYG in einer Form mit angularJS 1. Ich verwende Rails 5.1.4, ckeditor 4.2 und Büroklammer 5.1.0. https://github.com/galetahub/ckeditor für die gem Implementierung und haben den Generator laufen:Rails 5, Ckeditor und Paperclip Fehler beim Laden und Suchen von Bildern

Ich habe die Richtungen von hier gefolgt

rails generate ckeditor:install --orm=active_record --backend=paperclip 

Beim Versuch, auf „Browse Server“ oder laden Sie ein Bild auf dem Server über die ckeditor I Durchführung bin die folgenden Get-Anfrage:

Started GET "/ckeditor/pictures?CKEditor=js-ckeditor&CKEditorFuncNum=1&langCode=en" for 172.23.0.1 at 2017-10-24 01:59:04 +0000 

Und ich dann die folgende Fehlermeldung erhalten:

ActionController::RoutingError (undefined method `layout' for Ckeditor::ApplicationController:Class): 

ckeditor (4.2.4) app/controllers/ckeditor/application_controller.rb:2:in `<class:ApplicationController>' 
ckeditor (4.2.4) app/controllers/ckeditor/application_controller.rb:1:in `<top (required)>' 

Dies ist die Steuerung, wo der Fehler herkommt: https://github.com/galetahub/ckeditor/blob/master/app/controllers/ckeditor/application_controller.rb

Edit: Es stellte sich heraus, die Schienen 5 api nicht enthalten ActionView :: Layouts aus der Box, so fügte ich dies folgende meiner Application:

include ::ActionView::Layouts 

Dies kümmerte sich um die undefinierte Methode "Layout". Jetzt habe ich jedoch einen anderen Fehler, der von demselben ckeditor-Controller kommt, nachdem die Get-Anforderung an die Indexaktion übergeben wurde. Ich benutze auch devise_token_auth und pundit für die Autorisierung und Authentifizierung.

Processing by Ckeditor::PicturesController#index as HTML 

Parameters: {"CKEditor"=>"js-ckeditor", "CKEditorFuncNum"=>"1", "langCode"=>"en"} 

Completed 500 Internal Server Error in 149ms (ActiveRecord: 0.0ms) 

NoMethodError (undefined method `ckeditor_authorize!' for #<Ckeditor::PicturesController:0x007f5e7ac7dc30>): 
+0

Momentan habe ich eine temporäre Lösung. Zuallererst liegt das Problem bei der ActionController :: API. Ich konnte nicht sofort herausfinden, welche Module enthalten sein müssen, um alles reibungslos laufen zu lassen. Also, für jetzt habe ich ActionController :: API zu ActionController: Base geändert, um alle zugehörigen Module von base einzuschließen. Ich werde diese Antwort aktualisieren, indem ich meinen Controller-Vorgänger zurück in die API umschalte und die nötigen Module einbinde, wenn ich Zeit habe. Wenn jemand anderes dies herausgefunden hat, antworten Sie bitte :) –

Antwort

0

ist dies die CKeditor Application Controller, wo Sie die Fehlermeldung erhalten, sollten Sie diesen Code auf Ihre Frage sind mit link to the page

class Ckeditor::ApplicationController < Ckeditor.parent_controller.constantize 
    layout Ckeditor.controller_layout 

    before_action :find_asset, only: [:destroy] 
    before_action :ckeditor_authorize! 
    before_action :authorize_resource 

    protected 

    def respond_with_asset(asset) 
    asset_response = Ckeditor::AssetResponse.new(asset, request) 

    if asset.save 
     render asset_response.success(config.relative_url_root) 
    else 
     render asset_response.errors 
    end 
    end 
end 

Ich weiß nicht, warum es nicht funktioniert und ich don Ich habe keine Ahnung, was Ckeditor.controller_layout ist ... halten Sie mich mit Ihrem Fortschritt aktualisiert

Verwandte Themen