yolu kullanıyorum:
Ben fazla fotoğraf var olduğu özelliklere sahip (10 durumunda). özellikleri kontrolörü olarak
: var whe koduna gitmek
def new
@search = Property.search(params[:search])
@property = Property.new
10.times { @property.photos.build }
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @property }
end
end
# GET /properties/1/edit
def edit
@search = Property.search(params[:search])
@property = Property.find(params[:id])
# Se o usuário atual for dono da propriedade
if current_user.id == @property.user_id
@photos = Photo.where("property_id = ?", @property.id)
@N = @photos.count
@N = [email protected]
@N.times { @property.photos.build }
else
render :action => "show"
end
end
10.times görünümünde 10 kez fotoğraf alanını "render". Form düzenlendiğinde, yalnızca fotoğraf alanlarını görüntüleme izni verilir. Örnek için: İlk kez 3 fotoğraf yükledim, daha fazla yüklemek istersem, sadece 7 alan görünür. mülkiyet modelinde
Ben:
class Property < ActiveRecord::Base
attr_accessible :photos_attributes, :logradouro, :complemento, :wc, :negocio, :cep, :vagas, :valor,
:quartos, :uf, :area, :bairro, :suites, :salas, :numero, :cidade, :descricao,
:status, :tipoImovel
has_many :photos
accepts_nested_attributes_for :photos, :allow_destroy => true
end
Bu fotoğraflar yüklenmesine izin verir.
Fotoğraf modeli: Kısmi Benim formda
class Photo < ActiveRecord::Base
belongs_to :property
has_attached_file :photo, :styles => { :small => "100x100>", :medium => "530>x530", :large => "800x800>" }
validates_attachment_presence :photo
validates_attachment_size :photo, :less_than => 500.kilobytes
end
:
<div id="new_up">
<%= f.fields_for :photos do |p| %>
<% if p.object.new_record? %>
<p><%= p.file_field :photo %>
<%= p.radio_button :miniatura, true -%>
</p>
<% end %>
<% end %>
</div>
<div id="old_up">
<h4>Imagens Atuais</h4>
<% f.fields_for :photos do |p| %>
<% unless p.object.new_record? %>
<div style="float: left;">
<%= p.radio_button :miniatura, true -%>
<%= link_to image_tag(p.object.photo.url(:small)), p.object.photo.url(:original) %>
<%= p.check_box :_destroy %>
</div>
<% end %>
<% end %>
</div>
, hiç bir şey buldunuz? Teşekkürler. –
Paperclip için hiçbir şey, en azından tam çözüm değil (doğrulama olmadan çoklu eklenti desteği http://www.emersonlackey.com/article/rails-paperclip-multiple-file-uploads adresinde görülebilir). Bir süre önce Sinatra uygulaması için benzer bir şeyi kodladım ve doğru bir şekilde almak için uzun zaman aldı. Şu anda kullanıcılar için bu desteği sunmuyorum (formumdaki diğer alanlar için doğrulama başarısız olursa yeniden yüklemeleri gerekir). Bence bu, "% 80" çözümlerini kullanırken sorun yaratıyor - uzatmaktan sıfırdan kodlamak daha kolay. –