Rails 4如何将图像作为blob加载到数据库中

时间:2013-12-07 23:56:54

标签: mysql ruby-on-rails image paperclip

我在网上看了很多。我认为Paperclip可能是我最大的希望。但我不知道如何使用它将图像文件从Rails 4上传到MySQL数据库。 是的我知道将它加载到文件夹更好,但我需要将其加载到数据库中。 所以,如果你能帮助我,我将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:5)

您无需carrierwavepaperclip上传宝石即可将图片存储为blob。

以下是如何将图像存储在二进制字段(raw_file

中的示例

形式:

<%= form_for @user do |f| %>
  <%= f.file_field :avatar %>
<% end %>

控制器:

def create
  @user = User.new(params[:user])
  # store uploaded avatar as blob
  @user.raw_file = params[:user][:avatar].read
  @user.save
end

使用RMagickmini_magick从blob转换图片。

答案 1 :(得分:1)

我认为您对使用Rails进行图片上传的方式感到困惑(尤其是使用Paperclip / Carrierwave)。我将解释它们如何为您服务:


您只存储文字&amp;数据库中的引用(无图像)

MYSQL&amp; Rails只在DB中存储文本,没有别的。应用程序的工作方式是获取数据表中的数据。然后将其与其他代码和&amp;应用中的资源,使其协同工作

Paperclip&amp; Carrierwave不会将图像存储在您的数据库中;他们将它们存储在您的Rails应用程序的/public/system文件夹中(如果您想将它们放在那里,则存储在S3上)。然后,他们通过将其名称存储在数据库中来链接到图像。那是

当要加载的图像(使用回形针例如),则&#39; 11实际上使用ActiveRecord加载image的数据表的内容,和回形针将创建其自己的ActiveRecord对象离的背它


Paperclip或Carrierwave将帮助您

您应该查看this Railscast,它会对您有所帮助: RailsCast