1

在表单中使用构建方法是一种好习惯吗?

<%= form_for([@post, @post.comments.build]) do |f| %>

我在我的应用程序中使用了这种方法,它工作正常,但它也在视图中显示表单将创建的空结果。这可能是因为我有表单并在同一视图中显示保存在数据库中的记录。我怎样才能避免这种情况?

谢谢你

4

1 回答 1

2

您的方法的问题是,在提交带有验证错误的表单后,当再次显示表单时,值将被重新初始化,因此表单中将没有值或错误消息。

如果您有默认的脚手架控制器,请将其放入new操作中

@comment = @post.comments.build

并将form_for呼叫更改为

form_for([@post, @comment]) do |f|

这样,表单将始终填充提交的Comment.

于 2013-10-24T12:01:26.353 回答