2012-02-08 43 views
2

我有以下的關聯:避免fields_for添加一條記錄到相關模型

class Developer < ActiveRecord::Base 
    has_many :large_photos, :class_name => 'Photo', :conditions => { :large => true }, :reject_if => proc { |x| x['image'].blank? } 
end 

class Photo < ActiveRecord::Base 
    belongs_to :developer 
    mount_uploader :image, ImageUploader # Carrierwave 
end 

現在,我希望建立一個發展形式,提交後,將添加一個單獨的文件字段上傳一個新的Photo。目前,我有:

<%= form_for @developer do |form| %> 

    <%= form.fields_for :large_photos do |sf| %> 
    <div class="dropzone"> 
     <%= sf.file_field :image %> 
     <%= sf.hidden_field :large, :value => '1' %> 
     <%= sf.hidden_field :image_cache %> 
    </div> 
    <% end %> 

<% end%> 

現在,我有這個問題是fields_for通過現有記錄循環(當然是!),我寧願避免,我只想補充用於上傳新照片的單個文件字段。我將如何去做這件事?

回答

5
<%= form.fields_for :large_photos, @developer.large_photos.build do |project_fields| %> 

而不是創建爲每個現有的照片字段,該行建立一個新的Photo並顯示字段僅這一個(這樣的字段都是空的,我認爲這是你想要的)。

+1

好吧,拍。這很有道理,但我還沒有想到這麼做:S大腦屁。謝謝! – 2012-02-08 11:48:24