2012-04-22 9 views
12

Me gustaría crear una página de edición para el siguiente formulario. El problema es que cuando el usuario navega hacia la página de edición, el nombre de marca y el nombre se completan previamente, pero el campo de carga de la imagen muestra "no se eligió ningún archivo", incluso cuando existe un avatar para el "estilo". Por favor, avíseme si hay alguna forma de remediar esto. ¡Gracias!Actualización del avatar clip en multipart simple_form

Mi Forma de edición:

<%= 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 %> 

Respuesta

18

Acabo de implementar esto ayer. Hacer una entrada personalizada en/app/entradas

class AvatarInput < SimpleForm::Inputs::FileInput 
def input 
out = '' # the output string we're going to build 
# check if there's 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 

entonces puede hacer

<%= f.input :avatar, :as => :avatar %> 
+0

¿Necesito bifurcar la gema y agregarla a simple_form/lib/simple_form/inputs? – Abram

+0

Calculado simplemente póngalo en mi aplicación ... dentro de las entradas ... EXCELENTE trabajo. – Abram

+0

¡Yay! Me alegro de que funcionó. ¿Recibo la recompensa? :) – DVG

0

El código para los nuevos puntos de vista/Editar en paperclip's github page se ve así:

<%= form_for :user, @user, :url => user_path, :html => { :multipart => true } do |form| %> 
    <%= form.file_field :avatar %> 
<% end %> 

Así que tal vez debería tratar m.file_field e incluyen :html => { :multipart => true } así? Aunque personalmente prefiero Attachment-Fu.

+0

esto se trata de simple_form no rails estándar formulario –

6

Esto es todo lo que necesitaba para que esto funcione (en haml):

=simple_form_for @user, :html => {:multipart => true } do |f| 
    =f.file_field :image