2015-10-21 46 views
0

在我的Rails 4.2應用程序中,我想使用Froala Editor上傳約20-50個文檔(pdf/docx/rtf/txt),並將上傳的文檔保存在路徑/public/media/documents中。我想發佈上傳到/admin/media/documents#upload。理想情況下,我還希望從編輯器中的文件上傳按鈕中單擊已上傳的文檔。如何集成Froala編輯器文件上傳與Rails 4.2

在哪裏發生這種情況的形式,我有一些javascript啓動這樣的:

javascript: $('#page_content').editable({ 
    imageUploadURL: '/admin/media/documents/', /not sure about this 
    inlineMode: false, 
    theme: 'royal', 
    // Set custom buttons with separator between them. 
    buttons: ['html', 'sep', 'undo', 'redo', ... 

是否有人可以幫助我在拼圖中缺失的部分?

回答

3

您將需要添加

javascript: $('#page_content').editable({ 
    imageUploadURL: '/admin/media/documents/', 
    imageUploadMethod: 'POST' 
} 

採取carrierwave爲例:Carrierwave,你可能需要閱讀它徹底

添加寶石到你的寶石文件

gem 'carrierwave' 

和那麼

bundle install 

創建上傳模型throught carrierwave

rails g uploader Image 

這東西看起來像這樣:

-- app/model/uploader/image_uploader.rb 
class ImageUploader < CarrierWave::Uploader::Base 

    storage :file 

    def store_dir 
     "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
end 

這將產生在app /模型/上傳

在你的文檔模型image_uploader.rb:

class document < ActiveRecord::Base 
    mount_uploader :picture, ImageUploader 
end 

所以現在你需要爲你創建一條路線[R上傳,從您的路徑可能看起來像=>

-- config/route.rb 

resource :admin do 
    resource :media do 
     post 'documents' => 'documents#upload' 
    end 
end 

在文檔中,你需要執行上傳操作,以節省時間和明確的答案。我將跳過csrf令牌cerify。

class DocumentsController < ApplicationController 
    skip_before_filter :verify_authenticity_token 

    ... 
    # you need you adjust your code. 
    def upload 
     @document = admin.media.documents.new 
     @document.picture = params[:file] 
     @document.save 

     respond_to do |format| 
      format.json { render :json => { status: 'OK', link: @document.picture.url}} 
     end 
    end 
    ... 
end 

希望這可以清楚地解釋這個問題。

+1

你可以參考:[gist](https://gist.github.com/qqnc/c4417aefe120374c8271) –