Обновление paperclip аватара в multipart simple_form
Я хотел бы создать страницу редактирования для следующей формы. Проблема в том, что когда пользователь просматривает страницу редактирования, имя_маркинга и имя предварительно заполняются, но поле загрузки изображения показывает "не выбран файл", даже когда аватар существует для "стиля". Пожалуйста, дайте мне знать, есть ли способ исправить это. Спасибо!
Моя форма редактирования:
<%= simple_form_for @style, :html => { :class => 'form-horizontal' }, :remote => true do |m| %>
<%= m.input :brand_name, :label => 'Brand', :placeholder => 'Brand' %>
<%= m.input :name, :label => 'Style', :placeholder => 'Style' %>
<%= m.input :avatar, :label => "Image" %>
<div class="form-actions" style = "background:none">
<%= m.submit nil, :class => 'btn btn-primary' %>
<%= link_to 'Cancel', styles_path, :class => 'btn' %>
</div>
<% end %>
Ответы
Ответ 1
Только что реализовано вчера. Внесите пользовательский ввод в/приложение/входы
class AvatarInput < SimpleForm::Inputs::FileInput
def input
out = '' # the output string we're going to build
# check if there an uploaded file (eg: edit mode or form not saved)
if object.send("#{attribute_name}?")
# append preview image to output
# <%= image_tag @user.avatar.url(:thumb), :class => 'thumbnail', id: 'avatar' %>
out << template.image_tag(object.send(attribute_name).url(:thumb), :class => 'thumbnail', id: 'avatar')
end
# append file input. it will work accordingly with your simple_form wrappers
(out << @builder.file_field(attribute_name, input_html_options)).html_safe
end
end
Затем вы можете сделать
<%= f.input :avatar, :as => :avatar %>
Ответ 2
Это все, что мне нужно для работы (в haml):
=simple_form_for @user, :html => {:multipart => true } do |f|
=f.file_field :image
Ответ 3
Код для новых/редактирования видов из paperclip github page выглядит следующим образом:
<%= form_for :user, @user, :url => user_path, :html => { :multipart => true } do |form| %>
<%= form.file_field :avatar %>
<% end %>
Так что, может быть, вы должны попробовать m.file_field
и включить :html => { :multipart => true }
? Хотя я лично предпочитаю Приложение-Fu.