Rails,Cocoon:从父级设置嵌套形式的值

时间:2017-04-20 08:11:41

标签: ruby-on-rails cocoon-gem

我有一个预订模型,其中有许多Booking_Items。预订有一个start_date和一个end_date。 Booking_Items可以有不同的start_date和end_date值。

我有一个使用cocoon的嵌套表单。它工作得很好 - 允许其他项目,更新,删除。我希望将任何新的Booking_Item的start_date和end_date默认为父级的。[/ p>

是否有正确的方法为嵌套项设置动态默认值?

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用:wrap_object选项(documentation)。这将允许您执行类似

的操作
= link_to_add_association('add booking-item', @form_obj, :booking_items,
    wrap_object: Proc.new { |bi| bi.start_date = @booking.start_date; bi })

因为这是在服务器上预呈现的,所以这不是真正的“动态”,如果用户更改表单中预订的start_date / end_date,新的预订项目仍将使用原始日期进行呈现。如果这是你想要的,你将不得不恢复使用js和cocoon callbacks