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
属性を持つ Member モデルがありcredits
ます。50 クレジット以上のメンバーは、写真をアップロードできる必要があります。credits
メンバーが写真をアップロードするときに属性を検証するにはどうすればよいですか? 私はこの解決策を思いつきましたが、これを行うより良い方法があるかどうか疑問に思っています。これを行う正しい方法で検証コールバックにエラーを追加しますか? または、仮想属性を作成credits
して proc で検証する必要がありますか?
編集:このソリューションは機能しますが、より一般的なソリューション用の「課金可能」モジュールを作成しました。