gpt4 book ai didi

ruby-on-rails - Rails - 当模型验证失败时被 URL 更改混淆

转载 作者:行者123 更新时间:2023-12-04 05:55:57 25 4
gpt4 key购买 nike

我有一个用户资源,其中 :name是模型上的必需属性。

如果我尝试创建一个没有名称的新用户,则验证将失败,并且错误消息会按预期显示在表单顶部,但是 该页面的 URL 由 /users/new 更改, 至 /users ?

直到今晚我第一次开始玩 capybara 时,我才注意到这种行为,并期望验证失败后的 current_path 为 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 中,您使用 POST 创建用户。请求到 /users .

如果验证失败,您只需渲染 edit查看,但它不会更改 url。

要更改网址,您应该redirect_to但是,这样你会丢失与执行的验证相关的信息。

关于ruby-on-rails - Rails - 当模型验证失败时被 URL 更改混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7843271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com