在表单中使用构建方法是一种好习惯吗?
<%= form_for([@post, @post.comments.build]) do |f| %>
我在我的应用程序中使用了这个方法,它运行正常,但它也在视图中显示了表单将创建的空结果。这可能是因为我有表格并在同一视图中显示保存在数据库中的记录。我怎么能避免这个?
谢谢
答案 0 :(得分:2)
您的方法存在的问题是,在提交带有验证错误的表单后,再次显示表单时,将重新初始化值,因此表单中将不会显示任何值或错误消息。
如果您有默认的脚手架控制器,请将其放在new
操作
@comment = @post.comments.build
将form_for
调用更改为
form_for([@post, @comment]) do |f|
这样,表单将始终使用提交的Comment
填充。