загрузка изображений с помощью HTML-формы в Rails - PullRequest
0 голосов
/ 11 сентября 2018

В настоящее время я работаю над загрузкой изображений в рельсах, но столкнулся с некоторыми проблемами. У меня есть форма, которая создает задачу и имеет столбец для загрузки изображения. Однако, когда я проверяю терминал, форма не отправляет изображение в параметре, поэтому всякий раз, когда я создаю новый объект, оно не включает изображение. Я пользуюсь carrierwave gem Кто-нибудь мне поможет?

Я новичок и совершенно сбит с толку использованием формы Ruby, поэтому сейчас я склонен придерживаться тегов HTML.

Просмотр (я не включил весь код, иначе его было бы трудно прочитать)

<form id="new_form" name="task" role="form" enctype="multipart/form-data">
  <input type="file" name="avatar" class="form-control" id="avatar" accept="image/*">
  <input type="submit" class="btn btn-success" id="submit">
</form>

Контроллер

def create
    @item = item.new(name: params[:name],
                     avatar: params[:avatar])
    @item.save
end

1 Ответ

0 голосов
/ 11 сентября 2018

Извините, я не могу комментировать, поэтому я попробую в качестве ответа ... Вы сгенерировали загрузчик изображений? Вы добавили mount_uploaders :images, ImageUploader в вашу модель? А как насчет вашей формы? Можете ли вы показать нам, как вы это написали? Это должно выглядеть так, я считаю

 # View
<%= form_for @task,  html: { multipart: true }  do |f| %>
  <%= f.text_field :some_title %>
  <%= f.file_field :images %>
  <%= f.submit "Create" %>  
<% end %>

# Controller

## Action
def create
  @item = Item.new(item_params)
  params[:item]['avatar'].each do |avatar|
    @item.avatar = avatar
    @item.save
  end
end

private

def items_params
  params.require(:item).permit(:title, {avatars: []})
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...