検証コードを枯渇させるにはどうすればよいですか?Discussion
aacategory
とstatus
fieldsを持つモデルがあります。ステータス値はカテゴリ値によって異なります。たとえば、でcategory == 'question'
のみステータスを持つことができるディスカッション。STATUSES[:question]
STATUSES = {
question: %w[answered],
suggestion: %w[pending planned started completed declined],
problem: %w[started solved]
}
validates :status, allow_blank: true, inclusion: { in: STATUSES[:question] }, if: lambda { self.category == 'question' }
validates :status, allow_blank: true, inclusion: { in: STATUSES[:suggestion] }, if: lambda { self.category == 'suggestion' }
validates :status, allow_blank: true, inclusion: { in: STATUSES[:problem] }, if: lambda { self.category == 'problem' }
Rails3を使用しています。