Мне было интересно, как реализовать загрузку изображений с помощью ruby на rails v3?Что я получил, так это то, что изображение загружено в мой каталог 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 %>
Так что я хотел бы помочь с тем, как сохранить загружаемые файлы / image.JPG в базе данных нехешированное значение?