Rails 为什么调用.valid?删除我的错误消息
Rails why is calling .valid? removing my error messages
在我的 @item
实例上调用 ActiveModel::Validations#valid?
正在删除我的错误消息。这最好用例子来说明。
[1] pry(#<ChangeObjectsController>)> @item.errors.add(:new_error, "new error has occurred")
=> ["new error has occurred"]
[2] pry(#<ChangeObjectsController>)> @item.errors.full_messages
=> ["Connection error has occurred", "New error new error has occurred"]
[3] pry(#<ChangeObjectsController>)> @item.valid?
=> true
[4] pry(#<ChangeObjectsController>)> @item.errors.full_messages
=> []
在我的模型中 class 我包括验证库(注意它不继承自 ActiveRecord::Base
):
include ActiveModel::Validations
extend ActiveModel::Naming
错误信息是这样添加的:
任何人都可以澄清这个问题吗?例如,这是我想要的行为吗?我没有正确使用它?
这是正常行为。如果 valid?
返回 true 但有错误消息,则不一致。您可以在 rails source 中看到 valid?
明确清除了错误消息。
添加错误消息的正常方法是通过验证,无论是内置验证还是自定义验证。
在我的 @item
实例上调用 ActiveModel::Validations#valid?
正在删除我的错误消息。这最好用例子来说明。
[1] pry(#<ChangeObjectsController>)> @item.errors.add(:new_error, "new error has occurred")
=> ["new error has occurred"]
[2] pry(#<ChangeObjectsController>)> @item.errors.full_messages
=> ["Connection error has occurred", "New error new error has occurred"]
[3] pry(#<ChangeObjectsController>)> @item.valid?
=> true
[4] pry(#<ChangeObjectsController>)> @item.errors.full_messages
=> []
在我的模型中 class 我包括验证库(注意它不继承自 ActiveRecord::Base
):
include ActiveModel::Validations
extend ActiveModel::Naming
错误信息是这样添加的: 任何人都可以澄清这个问题吗?例如,这是我想要的行为吗?我没有正确使用它?
这是正常行为。如果 valid?
返回 true 但有错误消息,则不一致。您可以在 rails source 中看到 valid?
明确清除了错误消息。
添加错误消息的正常方法是通过验证,无论是内置验证还是自定义验证。