我有一个User资源,其中:name是模型上的必需属性.
如果我尝试创建没有名称的新用户,则验证失败并且错误消息按预期显示在表单顶部,但页面的URL从/ users / new更改为/ users?
直到今晚我第一次开始使用水豚时,我才注意到这种行为,并且在验证失败后期待当前路径为http://localhost:3000/users/new
我无法弄清楚为什么我的规格失败了:
it 'should not create an invalid user' do fill_in "Name",:with=>"" click_button "Create User" current_path.should == new_users_path end
我已经验证它发生在我所有的其他rails应用程序中,所以我意识到这是rails工作的方式,但我真的不知道这里发生了什么.它为什么这样工作?为什么在验证失败时路径从new_users_path变为users_path?
这让我非常困惑
解决方法
这是完全正常的.
在基本CRUD中,您使用对/ users的POST请求创建用户.
如果验证失败,您只需渲染编辑视图,但不会更改网址.
要更改网址,您应该redirect_to但是,这样您就会丢失与执行的验证相关的信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。