gpt4 book ai didi

validation - Rails 5 - 带有一条错误消息的自定义验证

转载 作者:行者123 更新时间:2023-12-03 08:52:11 25 4
gpt4 key购买 nike

我想添加多个有效条件,但我只想查看一条摘要错误消息。

validates :floor, presence: true, numericality: { only_integer: true }, length: { maximum: 2 }

如何在出现任何错误时仅显示一条消息,例如:“需要楼层,必须是数字...”

此外,当我使用时:

if @posts.valid?
@posts.save
redirect_to room_path
else
render :new
end

浏览器将呈现新的消息,但 url 为 http://localhost:3000/posts ,它不是http://localhost:3000/posts/new当用户刷新页面=>它将返回索引页面(而不是新页面)时,这是一个问题。我该如何修复它?

最佳答案

您可以编写自定义验证器:

validate :validate_floor

private

def validate_floor
return if floor.present? && floor.scan(/\D/).empty? && floor.length <= 2

errors.add(:floor, 'Floor is required, must be number...')
end

其他问题;

当您发布表单时,请求将转到create 操作。由于 create 操作,路径被重定向到 http://localhost:3000/posts。当表单中出现错误时,表单将使用 render :new 重新呈现。但 url 不会改变,因为没有重定向。其实这里并没有错误。这才是应该的。

关于validation - Rails 5 - 带有一条错误消息的自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58055805/

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