คุณรวม ckeditor เข้ากับคลิปหนีบกระดาษเพื่อให้สามารถอัพโหลดไฟล์ภาพได้อย่างไร

คุณจะทำให้ http://github.com/galetahub/rails-ckeditor ทำงานได้อย่างไร เพื่อให้คุณสามารถ อัพโหลดไฟล์ภาพ? ฉันไม่คิดว่าจะใช้ที่เก็บข้อมูล s3...

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม


person dmonopoly    schedule 05.09.2010    source แหล่งที่มา


คำตอบ (5)


ใช่คุณสามารถ. ฉันคิดว่าคุณได้ตั้งค่าคลิปหนีบกระดาษสำหรับ S3 แล้ว ดังนั้นคุณจึงแก้ไขได้เพียง picture.rb และ attachment_file.rb ในไดเร็กทอรีโมเดลของคุณ (app/model/ckeditor/) และแทนที่บรรทัดเหล่านี้

  has_attached_file :data,
                    :url => "/ckeditor_assets/attachments/:id/:filename",
                    :path => ":rails_root/public/ckeditor_assets/attachments/:id/:filename"

ด้วย papeclip เวอร์ชัน has_attached_file ของคุณ:

  has_attached_file :data, :styles => { :content => '575>', :thumb => '80x80#' },
    :storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :path => ":attachment/:id/:style.:extension",
    :url => ":s3_domain_url"

แค่นั้นแหละ. Btw: นี่คือตัวอย่างจาก Rails 3

person zaparka    schedule 29.11.2010
comment
นี่เป็นสถานที่มาตรฐานตามแบบแผนใช่ไหม? แอพ/รุ่น/ckeditor/? ฉันสร้างไฟล์ไหนและใส่บรรทัดเหล่านี้ที่นั่น? - person Agis; 16.05.2012
comment
@Agis พูดตามตรงแล้วควรอยู่ในไดเรกทอรี lib แต่ฉันใช้ตัวสร้าง Ckeditor ซึ่งสร้างเส้นทางนี้ - person zaparka; 16.05.2012

ฉันจะติดตาม README สำหรับปลั๊กอิน Rails-ckeditor ที่คุณพูดถึง หากคุณไม่ต้องการ SWFUpload คุณสามารถ ผสานรวม CKEditor และคลิปหนีบกระดาษ โดยการเขียนตัวอัปโหลดไฟล์แบบกำหนดเองและเบราว์เซอร์ไฟล์แบบกำหนดเอง และเชื่อมต่อกับตัวแก้ไขโดยการระบุ URL และฟังก์ชันการโทรกลับ

การมีตัวอย่างมีประโยชน์เสมอ ผู้เขียนได้สร้างแอปตัวอย่าง น่าเสียดายที่มีข้อผิดพลาดบางประการอยู่ พิจารณาประเด็นต่อไปนี้เพื่อให้มันทำงาน

  1. เปลี่ยนบรรทัดต่อไปนี้ใน config/environment.rb

    config.gem 'paperclip', :version => '2.3.3'

    config.gem 'ckeditor', :version => '3.4.1'

  2. ลบไฟล์ index.html ในที่สาธารณะ

  3. เพิ่มเส้นทางรูทไปที่ config/routes.rb

    map.root :controller => "pages"

person 0x4a6f4672    schedule 29.06.2011

โซลูชัน Rails 4.2.0:

คุณจะทำให้ http://github.com/galetahub/rails-ckeditor ทำงานเพื่อให้คุณได้อย่างไร สามารถอัพโหลดไฟล์รูปภาพได้หรือไม่?

ตามที่เป็นอยู่ CKEditor อนุญาตให้คุณฝัง URL ของรูปภาพที่มีอยู่ได้ แต่เพื่อให้ CKEditor และคลิปหนีบกระดาษทำงานร่วมกันเพื่อให้คุณสามารถอัปโหลดรูปภาพได้ คุณจะต้องใช้ ImageMagick ตามที่ฉันเข้าใจ ระบบจะจัดการการอัปโหลดข้อมูลรูปภาพ สร้างการอ้างอิง URL รูปภาพสำหรับข้อมูลรูปภาพที่อัปโหลด และการฝัง URL ของข้อมูลรูปภาพที่อัปโหลด


ซีเคเอดิเตอร์

เพิ่ม gem "ckeditor" ลงใน Gemfile ของคุณ

จากนั้นรันคำสั่ง $ bundle install


เพิ่มสิ่งนี้ลงใน /app/assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require ckeditor/init  <--------------- THIS
//= require_tree . <----------------------- ABOVE THIS

ต่อ: https://github.com/galetahub/ckeditor#how-to-generate-models-to-store-uploaded-files

เพิ่มสิ่งนี้ไปที่:

/config/routes.rb
ฉันวางไว้หน้า resources ที่ใช้มัน

mount Ckeditor::Engine => '/ckeditor'  

การใช้ form_for และได้ตั้งค่าบทความแล้ว โมเดลที่มี title:string และ text:text /app/views/articles/_form.html.erb

  <p>
    <%= f.label :text %><br>
    <%= f.cktext_area :text, rows: 10  %> # <-------- "cktext_area"
  </p>

การใช้ simple_form_for

  <div class="form-group">
    <%= f.input :body, :as => :ckeditor, input_html: {:ckeditor => {:toolbar => 'FULL'}}, class: "form-control" %>
  </div>

คลิป

ต่อ: https://richonrails.com/articles/getting-started-with-ckeditor< /ก>

เพิ่ม gem "paperclip" ลงใน Gemfile ของคุณและ $ bundle install

จากนั้นรันคำสั่งสองคำสั่งต่อไปนี้:

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

และ

$ rake db:migrate


ImageMagick

สำหรับ macOS เซียร์รา:

$ brew install imagemagick

สำหรับตัวเลือกการติดตั้ง ImageMagick อื่นๆ: https://www.imagemagick.org/script/install-source.php

person MmmHmm    schedule 05.05.2017

ใช้สิ่งต่อไปนี้ที่เหมาะกับฉัน แต่คุณควรมีบัญชีใน Amazon สำหรับการจัดเก็บ s3 และจุดสิ้นสุดที่ถูกต้องที่คุณสามารถอ้างอิงได้ดังต่อไปนี้

code.`gem 'aws-sdk', '~> 2'
gem 'aws-s3'
gem 'aws-sdk-v1'
gem 'paperclip'

class Ckeditor::Picture < Ckeditor::Asset

  AWS_CONFIG = YAML.load(ERB.new(File.read("#{Rails.root}/config/aws.yml")).result)[Rails.env]

  has_attached_file :data,
                    s3_credentials: {
                        access_key_id: AWS_CONFIG['access_key_id'],
                        secret_access_key: AWS_CONFIG['secret_access_key'],
                        bucket: AWS_CONFIG['bucket'],
                    },
                    s3_host_name: 's3.amazonaws.com',
                    :s3_endpoint => 's3.amazonaws.com',
                    storage: :s3,
                    s3_headers:     { "Cache-Control" => "max-age=31557600" },
                    s3_protocol:    "https",
                    bucket:         AWS_CONFIG['bucket'],
                    url: ':s3_domain_url',
                    path: '/:class/:attachment/:id_partition/:style/:filename',
                    default_url:   "/:class/:attachment/:id/:style/:basename.:extension",
                    default_style: "medium"

  validates_attachment_size :data, :less_than => 2.megabytes
  validates_attachment_presence :data

  def url_content
    url(:content)
  end
end

`

แสดงความคิดเห็นบรรทัดนี้ require "ckeditor/orm/active_record" จาก /config/initializers

ในที่สุดก็ใส่บรรทัดนี้ใน <%= f.cktext_area :body %> view file

person Santosh Wakode    schedule 17.02.2016

นอกจากการตอบสนองของ Zaparka แล้ว ฉันยังต้องลบ #{Rails.root} เนื่องจากฉันได้รับข้อผิดพลาดคงที่แบบเป็นหน่วย ดังนั้นฉันจึงใส่ "/config/s3.yml" แทนและมันก็ได้ผล

person nfriend21    schedule 24.01.2013