我有以下关联:
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
循环遍历现有记录(当然是!),我宁愿避免,我只想添加一个文件字段进行上传一张新照片。我该怎么做呢?
答案 0 :(得分:5)
<%= form.fields_for :large_photos, @developer.large_photos.build do |project_fields| %>
此行不是为每张现有照片创建字段,而是构建一个新的Photo
并仅显示此字段的字段(因此字段为空,我认为这是您想要的)。