0

我有三个型号 - 一个Donar超级,接受者和礼物,问题与编辑模型中使用accepts_nested_attributes_for

捐助模型 - HAS_ONE:收件人,belongs_to的:礼品,accepts_nested_attributes_for,:收件人,accepts_nested_attributes_for:礼品

收件人模型 - belongs_to的:施主

而且礼品模型 - 的has_many:捐助者

当用户展示页面上 - /供体/ 1 - 我想能够编辑收件人和添加一个礼物。他们正在从一种形式编辑所有三种模型。

我在控制器中的show动作提供了一个表单,通过@recipient = @ donor.build_recipient向该表单上的donar添加一个recarient - 我在视图中设置了表单。这工作!

但是我想允许用户通过使用一个选择框预先存在的礼物附加到用户 -

<%= select(:gift, :gift_id, Gift.all.collect {|p| [ p.name, p.id ] }, {:prompt => 'Select gift'}) %> 

这是显示一个选择框与所有从表中列出的礼品。

当我提交表格时,我可以编辑捐赠者的详细资料,添加一个收件人,但礼物模型(或捐赠者与礼物的关系)根本没有更新。我究竟做错了什么?

回答

0

我相信你需要类似的东西:

<% form_for @donor do |f| %> 

    ... 

    <% f.select :gift_id, Gift.all.map{ |p| [p.name, p.id] } %> 

    ... 

<% end %> 

在这种情况下没有必要对accepts_nested_attributes_for :gift因为你是从可用选项的列表中选择礼物,而不是在捐助形式创建它的。

+0

非常感谢,现在就开始工作。 – Finnnn