0

我已经将一些复杂的嵌套对象创建分解为我用于new/createedit/的表单对象update

对于edit表单,我需要公开模型上已经存在的值。这是一个具有大量属性和关联的粗大模型,我需要通过编辑表单公开其中的大部分。显然,我可以为每个从模型中提取值的 getter 编写方法:

def example
   @model.example
end

或使用委托:

delegate :example, to: @model

但是这两种解决方案都涉及大量重复。

这是我第一次在edit/update场景中使用表单对象,但我一直无法找到一个可以借鉴的示例(每个示例似乎都回避这方面并坚持使用new/create表单对象,其中预计为空表)。

那么在用于编辑表单的表单对象中,我应该如何将模型的属性和关联暴露给表单呢?

4

1 回答 1

1

您可以method_missing在表单对象上实现 a ,但我认为这与通过表单对象向表单公开清晰 API 的想法背道而驰。

我认为进行一些重复很好,这是一个映射层。它们在 99% 的情况下是重复的。

于 2013-10-14T18:46:30.917 回答