什么是确保嵌套表格存在关联的最佳实践?

时间:2014-10-30 14:02:40

标签: ruby-on-rails forms model-associations activemodel

使用包含嵌套资源的表单时,必须确保存在嵌套资源,以便表单构建器正常工作。

我已经看到过这种方法有很多种 - 在控制器中构建它们或在视图中构建它们,但我从未见过一致的方法。

如果表单包含嵌套的has_one项,那么如果这些项在模型中已经存在,那么它们应该在哪里构建?

1 个答案:

答案 0 :(得分:1)

一般来说,你是对的。人们到处都用。问题是 - 这是一个好习惯吗?它会影响其他开发人员吗?

在我看来,当您使用MVC模式时,视图会说明您将如何为用户提供某些内容。因此,构建,获取,创建等是控制器工作。除此之外,您的代码应该像其他开发人员一样清晰。否则它会变得不一致,因为逻辑在控制器和视图之间被分开。

在这种情况下,这是优先的方式:

#model:
has_one :item

#controller:
def new
  # ...
  something.build_item if something.item.blank?
  # ...
end