基于Railscast 196和197,我创建了一个嵌套表单,用于向我的文章模型中添加多个插图(图像附件)。我有一个这样的形式:如何将附加信息传递给嵌套窗体部分?
<%= form_for @article, :html => { :multipart => true } do |f| %>
<h2>Illustrations</h2>
<% for illustration in @article.illustrations %>
<%= f.fields_for :illustrations, illustration do |builder| %>
<%= render :partial => "illustration_fields",
:locals => { :f => builder, :illustration => illustration } %>
<% end %>
<% end %>
<p>
<%= f.submit "Submit" %>
</p>
<% end %>
而且_illustration_fields部分看起来像这样:
<div class="fields">
<p>
<%= f.label :illustration, "Illustration" %><br />
<%= link_to_remove_fields "remove", f %><br />
<%= f.file_field :illustration %>
</p>
</div>
如果说明已经存在,我想以显示它的图像标签内的页面上。我试图显示图像的部分的内部这样的:
<% unless :illustration.illustration.blank? %>
<%= image_tag(:illustration.illustration.url) %>
<% end %>
但它抛出了一个错误:
undefined method `illustration' for :illustration:Symbol
图示字段肯定存在于图示模型中,如我可以显示内部的图像主要形式是这样的:
<% unless illustration.illustration.blank? %>
<%= image_tag(illustration.illustration.url) %>
<% end %>
看来,Rails不明白的说明信息到部分(或我不正确传递)。什么是正确的做法呢?
uuhh ... eewwwww :)恕我直言,这是远远更好的传递`illustration`为本地。 – Zabba 2011-01-06 08:37:22