我有一个预订模型,其中有许多Booking_Items。预订有一个start_date和一个end_date。 Booking_Items可以有不同的start_date和end_date值。
我有一个使用cocoon的嵌套表单。它工作得很好 - 允许其他项目,更新,删除。我希望将任何新的Booking_Item的start_date和end_date默认为父级的。[/ p>
是否有正确的方法为嵌套项设置动态默认值?
答案 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。