无法让模型正确验证
can't get model to properly validate
我有以下型号。这有效,但是当我不填写代表或重量时,我不断收到错误消息: undefined method `*' for nil:NilClass
这在 calculate_tonnage 方法中。
有没有办法让我检查是否存在重复次数或重量,然后 calculate_tonnage en 然后 检查吨位是否唯一。
我认为这是解决方案,但我找不到如何执行此操作。有人知道解决这个问题的最佳方法是什么吗?
class Submission < ActiveRecord::Base
belongs_to :user
belongs_to :contest
validates_presence_of :user_id, :reps, :weight
validates_uniqueness_of :tonnage, scope: [:user_id, :contest_id]
after_validation :calculate_tonnage
# model helpers
def calculate_tonnage
self.tonnage = self.weight * self.reps
end
end
当然可以,只需将您的代码更改为:
def calculate_tonnage
self.tonnage = weight * reps if weight && reps
end
我有以下型号。这有效,但是当我不填写代表或重量时,我不断收到错误消息: undefined method `*' for nil:NilClass
这在 calculate_tonnage 方法中。
有没有办法让我检查是否存在重复次数或重量,然后 calculate_tonnage en 然后 检查吨位是否唯一。
我认为这是解决方案,但我找不到如何执行此操作。有人知道解决这个问题的最佳方法是什么吗?
class Submission < ActiveRecord::Base
belongs_to :user
belongs_to :contest
validates_presence_of :user_id, :reps, :weight
validates_uniqueness_of :tonnage, scope: [:user_id, :contest_id]
after_validation :calculate_tonnage
# model helpers
def calculate_tonnage
self.tonnage = self.weight * self.reps
end
end
当然可以,只需将您的代码更改为:
def calculate_tonnage
self.tonnage = weight * reps if weight && reps
end