Rails 3,Object#edit表单不显示嵌套的fields_for值,嵌套对象的Object has_many

时间:2012-01-04 21:46:41

标签: ruby-on-rails ruby-on-rails-3 nested-forms has-many

我的推荐书有很多批准。

我的表格部分来自脚手架建议书。

<%= f.fields_for :approval do |f| %>
        <%= f.text_field :email %>
<% end %>

在新操作中,这会建立一个批准:@ recommendation.approvals.build

在编辑操作中,该字段为空白。如果提供的电子邮件不正确或其他内容,我需要有人能够编辑此内容。但是如果有一个has_many协会,我如何编辑首次批准的电子邮件地址?

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

有两件事是错的:

不正确的复数

您的recommendation has_many approvals(不是approval)。因此,你的应该是:

<%= f.fields_for :approvals do |f| %>
  <%= f.text_field :email %>
<% end %>

需要嵌套属性

您需要告诉Recommendation您愿意接受Approval中的recommendation个对象:

# app/models/recommendation.rb
accepts_nested_attributes_for :approvals # add more options here

答案 1 :(得分:0)

<%= f.fields_for :approvals do |f| %>
    <%= f.text_field :email %>
<% end %>

您必须使用fields_for :approvalS