我已经将一些复杂的嵌套对象创建分解为我用于new
/ create
和edit
/ update
的表单对象。
对于edit
表单,我需要公开模型中已存在的值。它是一个具有大量属性和关联的厚实模型,我需要通过编辑表单公开其中的大部分内容。显然,我可以为从模型中提取值的每个人编写getter:
def example
@model.example
end
或使用委托:
delegate :example, to: @model
但这两种解决方案都涉及很多重复。
这是我第一次使用表单对象进行edit
/ update
方案,而且我一直无法找到一个单独的例子来阻止(每个例子似乎都害羞远离这个方面并坚持使用new
/ create
表单对象,其中需要一个空表单)。
因此,在用于编辑表单的表单对象中,我应该如何向表单公开模型的属性和关联?
答案 0 :(得分:1)
您可以在表单对象上实现method_missing
,但我认为这违反了通过表单对象向表单公开明确API的想法。
我认为重复进行一切都很好,这是一个映射层。在99%的案例中,它们都是重复的。