ruby-on-rails - 缺少属性时的验证错误(未定义的方法 `valid_car_type?' for nil:NilClass)
问题描述
处理此类错误的最佳方法是什么?由于该模式需要一个 valid_object,但是当它没有得到它时,它会正确地为缺少的属性提供验证错误,但随后会在valid_car_type?
.
这只是一个简化的例子。
模型
class Car
include ActiveModel::Model
validates_presence_of :subject :valid_object
validate :valid_car_type
def valid_car_type?
valid_object.car_type == "truck"
end
end
NoMethodError:
undefined method `valid_car_type?' for nil:NilClass
解决方案
使用活动记录回调,例如“before_save、after_save 等...”并调用 valid_car_type?
class Car
include ActiveModel::Model
validates_presence_of :subject :valid_object
before_save :valid_car_type?
def valid_car_type?
valid_object.car_type == "truck"
end
end
推荐阅读
- ios - 为什么 AVPlayer 定期观察者在设备上的开始时间之前显示当前时间?
- php - 如何访问值形式数组
- javascript - React JS 前端中的错误 Access-Control-Allow-Origin
- python - 我们如何近似计算运行一个程序需要多少内存?
- c++ - 在 C++ MFC 中按下 Tab 键时将焦点从 CIPAddressCtrl 转移到另一个控件
- python - 创建后网址不存在
- azure - AADSTS65001:用户或管理员未同意使用 ID 为“的应用程序”
- javascript - Vue js获取存储在div中的隐藏输入的单个值
- python - 从 mysql 选择/加载数据到内存/pandas 的最快方法
- select - 开放层:持久选择交互功能的问题