Rails嵌套字段无,但仍显示在视图中

时间:2015-10-04 01:38:19

标签: ruby-on-rails forms nested

我试图在表单中显示嵌套属性,即使嵌套属性为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。

1 个答案:

答案 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 %>