我有一份新幼儿园的申请表。
<%= form_for @kindergarten, :html => {:multipart => true} do |f|%>
<%= render 'shared/error_messages', object: f.object %>
</br>
<%= f.fields_for :photos do |p| %>
<%= p.label 'upload photo'%>
<%= p.file_field :image %>
<% end %>
</br>
<%= render 'about_company', f: f%>
</br>
<%= render 'contact', f: f %>
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<%end%>这背后的逻辑是1个幼儿园可以有多张照片。
以下是模型声明:
幼儿园
has_many :photos, limit: 7, dependent: :destroy
accepts_nested_attributes_for :photos照片
attr_accessible :image, :logo, :kindergarten_id
belongs_to :kindergarten
mount_uploader :image, ImageUploader
validates :kindergarten_id, presence: true
validates :photo, presence: true我已经为此挣扎了几个小时了,我不明白为什么“上传文件”按钮和标签没有显示出来。当我说现在显示时,我的意思是它们被完全忽略,并且不会出现在呈现的html中。
发布于 2012-09-23 02:43:06
在为一个新的@ kindergarden呈现表单之前,您需要构建一个照片关联才能正常工作:
def new
@kindergarden = Kindergarden.new
@kindergarden.photos.build # provides a photo object to use in the form
# rest of your action
end此外,如果您希望在表单中包含多个照片字段,可以执行以下操作:
5.times { @kindergarden.photos.build } https://stackoverflow.com/questions/12546564
复制相似问题