0

ペーパークリップとRails 3.2を使用しています

Remotipart gem をインストールしました。

画像が添付されている私のモデル:

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

フォームは次のとおりです。

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

ファイルが選択されたときにファイルをアップロードし、ユーザーにサムネイルを表示できるようにしたい。Remotipart がこれを簡単にするのに役立つことになっていることは理解していますが、それを機能させる方法がわかりません。

誰かが私を正しい方向に向けますか?

更新:アップロードされた画像のサムネイルを表示できるように、ajax のみを使用してファイルをアップロードできるようにしたいと考えています。そのため、フォーム自体は ajax 経由で送信されない可能性がありますが、ファイルのアップロードは送信する必要があります。

これを行う方法はありますか?

4

1 に答える 1