Как загрузить изображение с другими формами ввода через ruby ​​на рельсах? - PullRequest
0 голосов
/ 29 августа 2011

Мне было интересно, как реализовать загрузку изображений с помощью 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 в базе данных нехешированное значение?

Ответы [ 2 ]

3 голосов
/ 29 августа 2011

Старайтесь не изобретать велосипед, драгоценность для скрепок - это то, что вы ищете, вы также можете найти альтернативы по адресу: ruby ​​toolbox

Cheers

1 голос
/ 24 апреля 2012

Carrierwave - лучшее решение для вашей проблемы.Если вы используете peperclip, вы можете попробовать заменить на carrierwave.если у вас возникли проблемы, дайте мне знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...