class Photo < ActiveRecord::Base
belongs_to :member
before_validation :able_to_upload
private
def able_to_upload
self.errors[:member] << 'can not upload photo.' if self.member.credits < 50
end
end
我有一个credits
属性的会员模型。拥有50学分或更高学分的会员应该可以上传照片。成员上传照片时如何验证credits
属性?我提出了这个解决方案,但我想知道是否有更好的方法来做到这一点。在验证回调上添加错误正确的方法来执行此操作?或者我应该创建一个虚拟属性并使用proc?
credits
编辑:虽然这个解决方案有效,但我已经创建了一个“可充电”模块,用于更通用的解决方案,感觉恰到好处。
答案 0 :(得分:1)
这是一个很好的解决方案。
由于我没有提醒的原因,你应该使用
def validate
end
而不是before_validation