2011-01-13 19 views
32

Tôi đã thử lưu trữ hình ảnh cục bộ trong bảng điều khiển đường ray.Kẹp giấy: Cách lưu trữ ảnh trong bảng điều khiển Rails?

Vì tôi có nhiều ảnh trong bộ lưu trữ cục bộ của mình (tôi sử dụng trình thu thập dữ liệu để tải xuống tấn ảnh), tôi muốn lưu trữ chúng vào cơ sở dữ liệu, với lợi ích của kẹp giấy để thực hiện một số công việc hình ảnh, như hình thu nhỏ, v.v. Nếu Tôi sử dụng một trang web để lưu hình ảnh mới vào cơ sở dữ liệu từng cái một, nó sẽ tốn rất nhiều thời gian. Vì vậy, tôi muốn tìm một cách trong giao diện điều khiển đường ray (một số mã) có thể lưu trữ hàng loạt hình ảnh vào cơ sở dữ liệu.

+0

Tôi khuyên bạn nên dành thời gian nhiều hơn với câu hỏi của bạn, bao gồm cả những gì bạn đã cố gắng và lý do tại sao bạn muốn sử dụng "bàn giao" để lưu trữ hình ảnh địa phương ... bạn sẽ có cơ hội cao hơn của bài trả lời bằng cách dành nhiều thời gian hơn cho bản thân. –

Trả lời

3

Tôi không biết nếu đó là những gì bạn muốn ... nhưng để lưu tài sản kẹp giấy từ bảng điều khiển Bạn có thể sử dụng đơn giản một cá thể Tệp. a.e.

Image.new :data=>File.new("/path/to/image.jpg","r") 
+0

ruby-1.9.2-p0> Image.new NameError: uninitialized liên tục ảnh \t từ (IRB): 2 \t từ /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/railties -3.0.1/lib/rails/commands/console.rb: 44: in 'start ' \t từ /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/ lib/rails/commands/console.rb: 8: trong 'start ' \t từ /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands .rb: 23: in ' ' \t từ tập lệnh/đường ray: 6: in' require' \t từ tập lệnh/đường ray: 6: in '

' – mlzboy

+0

tôi đã thử sử dụng Image.new trong bảng điều khiển đường ray nhưng nó làm tăng lỗi như trên – mlzboy

+1

Mô hình Hình ảnh được xác định? – andrea

16

Nếu đây là mô hình:

class User < ActiveRecord::Base 
    has_attached_file :avatar 
end 

sau đó những điều sau đây nên làm việc từ giao diện điều khiển:

>> User.create(:avatar => File.open('/path/to/image.jpg', 'rb')) 
+0

Đối với những người tò mò, ''rb'' và'' r'' trong tham số 'File.open' có thể hoán đổi cho nhau, theo: http://stackoverflow.com/a/7085623/293280 –

50

Để làm rõ thêm câu trả lời @ andrea của:

YourPaperclippedModelHere.new(:your_paperclip_field => File.new(path, "r"))

Vì vậy, nếu mô hình của bạn được gọi là hình ảnh và lĩnh vực kẹp giấy của bạn là dữ liệu:

Image.new(:data => File.new(path_to_your_file, "r"))

0

trễ trả lời nhưng hy vọng nó sẽ làm việc cho người khác. Bạn cần bao gồm.

File.new("#{Rails.root}/public/images/default_avatar.png", "r")

Các vấn đề liên quan