我想知道如何在 rails v3 上使用 ruby 实现图像上传?到目前为止,我得到的是图像已上传到我的 public/uploads 目录,但在数据库中存储了表单中的散列值。
哈希值的 EX:
!ruby/object:ActionDispatch::Http::UploadedFile
content_type: image/jpeg
headers: |
Content-Disposition: form-data; name="farmer[picture]"; filename="picture.JPG"
Content-Type: image/jpeg
original_filename: picture.JPG
tempfile: !ruby/object:File {}
控制器:
def new
@farmer = Farmer.new
end
def create
@farmer = Farmer.new(params[:farmer])
if @farmer.save
uploaded_io = params[:farmer][:picture]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'w') do |file|
file.write(uploaded_io.read)
end
flash[:success] = "#{@farmer.firstName} #{@farmer.lastName} added"
redirect_to @farmer
else
redirect_to new_path
end
end
型号:空
看法:
<%= form_for(@farmer, :html => { :multipart => true }) do |f| %>
<div class="field">
<%= f.label :picture, "Picture" %>
<%= f.file_field :picture %>
</div>
<div class="actions">
<%= f.submit "Post"%>
</div>
<% end %>
那么我想要帮助的是如何将uploads/image.JPG 存储到数据库中而不是散列值?