Rails表单处理、验证与测试全解析
1. 表单处理与验证逻辑
在处理表单提交时,我们添加了 if 语句来检查 @story.save 是否返回 true 。在 save 方法将对象写入数据库之前,会调用我们定义的验证规则。如果验证失败, save 方法将返回 false ,对象不会被保存,用户也不会被重定向。
else
render action:'new'
end
end
在 else 部分,我们指示控制器重新渲染与 new 操作关联的模板,也就是故事提交表单。这样用户可以纠正提交内容并重新提交,而无需重新输入表单值。需要注意的是, render 调用不会执行与 new 操作关联的任何控制器代码。
2. 提升用户体验
当验证错误发生时,重新渲染的表单生成的 HTML 为我们提供了如何为用户提供额外反馈的线索。使用 Rails 的 form_for 辅助方法,它会将标签和文本字段包装在 div 元素中,并为它们分配一个名为 field_with_errors 的类,同时设置自定义样式,使背景变红以指示错误。我们可以通过在 application.css
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



