加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails – 在模型验证失败时因URL更改而混淆

发布时间:2020-12-17 02:16:13 所属栏目:百科 来源:网络整理
导读:我有一个User资源,其中:name是模型上的必需属性. 如果我尝试创建没有名称的新用户,则验证失败并且错误消息按预期显示在表单顶部,但页面的URL从/ users / new更改为/ users? 直到今晚我第一次开始使用水豚时,我才注意到这种行为,并且在验证失败后期待当前路
我有一个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但是,这样您就会丢失与执行的验证相关的信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读