我在网上看了很多。我认为Paperclip可能是我最大的希望。但我不知道如何使用它将图像文件从Rails 4上传到MySQL数据库。 是的我知道将它加载到文件夹更好,但我需要将其加载到数据库中。 所以,如果你能帮助我,我将不胜感激。
谢谢
答案 0 :(得分:5)
您无需carrierwave
或paperclip
上传宝石即可将图片存储为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
使用RMagick或mini_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,它会对您有所帮助: