我试图在表单中显示嵌套属性,即使嵌套属性为nil也是如此。例如
<%= f.fields_for :package_survey_image do |image_form|%>
<% if PackageSurvey::Image.where(id:f.object[:package_survey_image_id]).count != 0 %>
<%= image_tag PackageSurvey::Image.find(f.object[:package_survey_image_id]).logo.url(:medium) %>
<% end %>
<%= image_form.file_field :logo %>
<%end %>
因此,如果package_survey_image为nil或empty,我希望视图显示一个浏览按钮来上传图像。我不想在控制器中实例化package_survey_image。
答案 0 :(得分:0)
即使您不想在控制器中实例化它,也就是应该在那里完成它。我会在控制器中执行以下操作:
@obj.image.build if @obj.image.blank?
然后在视图中:
<%= f.fields_for :package_survey_image do |image_form|%>
<%= image_form.file_field :logo %>
<% end %>
<% if @obj.package_survey_image %>
# Display the image.
<% end %>