2015-10-21 60 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) –