Estoy usando un clip y rieles 3.2

He instalado la gema Remotipart.

Mi modelo que tiene una imagen adjunta:

class Resource < ActiveRecord::Base
     has_attached_file :image, :styles => { :thumb => "50x50>", :small => "150x150>", :medium => "200x200>" },
                                :storage        => :s3,
                                :s3_credentials => "#{Rails.root}/config/s3.yml",
                                :path           => ':attachment/:id/:style.:extension'

      validates_attachment_presence :image
      validates_attachment_size :image, :less_than => 5.megabytes
      validates_attachment_content_type :image, :content_type => ['image/jpeg', 'image/png']
     end

Aquí está el formulario:

<%= form_for @resource, :html => { :class => 'form-horizontal' } do |f| %>
  <fieldset>
    <legend><%= controller.action_name.capitalize %> Resource</legend>

    <div class="control-group">
      <%= f.label :title, :class => 'control-label' %>
      <div class="controls">
        <%= f.text_field :title, :class => 'text_field' %>
      </div>
    </div>

    <div class="control-group">
      <%= f.label :url, :class => 'control-label' %>
      <div class="controls">
        <%= f.text_field :url, :class => 'text_field' %>
      </div>
    </div>

    <div class="control-group">
      <%= f.label :description, :class => 'control-label' %>
      <div class="controls">
        <%= f.text_field :description, :class => 'text_field' %>
      </div>
    </div>

    <div class="control-group">
      <%= f.label :author, :class => 'control-label' %>
      <div class="controls">
        <%= f.text_field :author, :class => 'text_field' %>
      </div>
    </div>

    <div class="control-group">
      <%= f.label :price, :class => 'control-label' %>
      <div class="controls">
        <%= f.number_field :price, :class => 'number_field' %>
      </div>
    </div>

    <div class="control-group">
      <%= f.label :category_id, :class => 'control-label' %>
      <div class="controls">
        <%= f.collection_select(:category_id, Category.all, :id, :name, {:prompt => 'Please select a Category'}) %>
      </div>
    </div>


  <div class="control-group">
      <%= f.label 'file types', :class => 'control-label' %>
      <div class="controls">      
        <% Filetype.all.each do |filetype| %>
        <%=check_box_tag "resource[filetype_ids][]", filetype.id, @resource.filetypes.include?(filetype) %>
        <%=filetype.abbreviation %>
      <% end %>
    </div>  
  </div>

 <div class="control-group">
      <%= f.label :image, :class => 'control-label' %>
      <div class="controls">   
        <%= f.file_field :image %>
      </div>
</div>
    <div class="form-actions">
      <%= f.submit nil, :class => 'btn btn-primary' %>
      <%= link_to 'Cancel', resources_path, :class => 'btn' %>
    </div>
  </fieldset>

Quiero poder cargar el archivo cuando se selecciona el archivo y luego mostrar una miniatura al usuario. Entiendo que se supone que Remotipart ayuda a hacer esto fácil, pero no tengo idea de cómo hacerlo funcionar.

¿Alguien me apunta en la dirección correcta?

Actualización: quiero poder cargar el archivo solo usando ajax para que se pueda mostrar una miniatura de la imagen cargada. Por lo tanto, es posible que el formulario en sí no se envíe a través de ajax, pero la carga del archivo debería.

Alguna forma de hacer esto?

0
chell 7 mar. 2012 a las 13:57

1 respuesta

La mejor respuesta

¿Ha leído la documentación de remotipart? Es para cargas de formularios remotos a través de ajax. No tienes una forma remota.

Consulte https://github.com/JangoSteve/remotipart

¡La buena noticia es que probablemente no necesite usar remotipart en absoluto!

0
nicholasf 7 mar. 2012 a las 15:30