无法获得模型以正确验证

时间:2015-10-03 08:50:58

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord models

我有以下型号。这有效,但当我没有填写代表或重量时,我不断收到错误:未定义的方法`*'代表nil:NilClass

这是 calculate_tonnage 方法。

有没有办法让我可以检查代表或重量的存在,然后计算_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

1 个答案:

答案 0 :(得分:1)

当然,只需将您的代码更改为:

  def calculate_tonnage
    self.tonnage = weight * reps if weight && reps
  end