0

ペーパークリップを使用して複数の画像をアップロードするたびに、たとえば画像と呼ばれる別のモデルを作成し、関連付けられたモデルでaccepts_nested_attributes_forを使用しました..

しかし、これを使わずに複数の画像を追加したい場合はどうでしょうか。たとえば、私のモデルがこのように見える場合

class Portfolio < ActiveRecord::Base
  belongs_to :sector

  attr_accessible :overview, :title, :sector_id, :photo
  has_attached_file :photo, :styles => { :portfolio => "680x680#"}
end

そして、私のフォームは次のようになります

<%= form_for @portfolio do |f| %>

    <%= f.label :title, "Title", :class => 'title_label' %>
    <%= f.text_field :title %>

    <%= f.label :sector_id, "Choose Sector", :class => 'title_label' %><br>
    <%= f.collection_select(:sector_id, Sector.all, :id, :name, :prompt => "Please Select a Sector") %><br>

    <%= f.label :overview, "Overview", :class => 'title_label'  %>
    <%= f.text_area :overview %><br>

    <%= f.file_field :photo %><br><br>


    <%= f.submit 'Submit', :class => 'btn' %>

    <% end %>

このシナリオで複数の画像をアップロードするにはどうすればよいでしょうか。通常、たとえばネストされたフォーム内では、提供されている link_to_add ヘルパーを使用します。

このシナリオではこれを利用できません。どうすればよいですか?

添付ファイル/写真を常に別々に保ち、nested_attributes を使用するのが最善の方法ですか?

どんな助けでも大歓迎

4

1 に答える 1

1

言及する必要がある複数の写真を追加するには、フォームタグで :html => { :multipart => true} として、

<%= form_for(@portfolio, :html => { :multipart => true}) do |f| %>

そしてfile_tagで、

<%= f.file_field :photo, as: :file, multiple: true, name: 'photo[photo]' %>

photo[photo]という名前を付けて、各写真に同じ名前を付け、コントローラーで簡単にアクセスできるようにします。ただそれを..

注: jquery とペーパークリップを使用して写真をアップロードしていると思います。これを試していない場合は、うまくいくかどうか教えてください.. ;)

于 2013-08-05T13:03:04.577 に答える