나는 간단한 모델을 가지고 : 나는이 before_save 콜백을 추가진작 및 before_ 콜백
class Category < ActiveRecord::Base
belongs_to :board
validates :name, presence: true, uniqueness: {scope: :board_id}
validates :board, presence: true
validates :display_order, presence: true, uniqueness: {scope: :board_id}
before_save :set_display_order
private
def set_display_order
last = self.board.categories.order("display_order DESC").last
self.display_order = last.display_order + 100 if last
end
end
, 이러한 테스트가 실패하기 시작 : 오류
it { should validate_uniqueness_of(:display_order).scoped_to(:board_id) }
it { should validate_uniqueness_of(:name).scoped_to(:board_id) }
(이 private 메소드의 라인 경우 last = ...
) :
NoMethodError:
undefined method `categories' for nil:NilClass
다른 했어야 시험은 잘 작동 :
it { should validate_presence_of(:name) }
it { should validate_presence_of(:board) }
it { should belong_to :board }
어떤 생각 문제는 여기에 무엇입니까? 나는 before_save
before_validation
에 여전히 동일한을 변경했습니다.