2011-09-20 114 views
3

我有一个嵌套窗体的问题:rails 3.1在应该(例如编辑现有记录时)时不会渲染fields_for块。因为我真的不是我的英语有足够的信心,I`ve做了一个小的示例应用程序:在rails中嵌套窗体3.1

新动作:

def new 
    @manga = Manga.new 
    3.times {@manga.volumes.build} 
end 

表格代号:

<%= form_for @manga do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 
    <% f.fields_for :volumes do |builder| %> 
    <p> 
    <%= builder.label :cover_link, "Link to cover" %><br /> 
    <%= builder.text_field :cover_link %> 
    </p> 
    <% end %> 
    <p><%= f.submit %></p> 
<% end %> 

在Rails 3.0生成的表单看起来just like it should。 (好吧,所以我不能发布图像,所以我必须将它们作为链接)。但在rails 3.1中,结果为different

我可能还应该注意到,我没有问题保存和任何其他最类似的问题问。当使用railscast 197的JS添加字段时,所有内容都完美保存。这里的主要问题是保存的所有内容都无法编辑。

回答

4

而在潜伏后,我发现,我的问题与其他人没有什么不同。

已弃用的方式致电fields_for是故障。

数据已被保存(并添加字段)的事实通过JS,有种误导我。解决方法很简单:

not `<% fields_for %>`, but `<%= fields_for %>` 
+0

非常感谢你,你是一个拯救生命的人。 –