2013-07-22 2 views
0

나는 USERS, CATEGORIES 및 WORKGROUPS가 있습니다. 사용자는 작업 그룹 user.workgroup_id에 속합니다. 카테고리는 workgroup : category.workgroup_id에 속합니다. 작업 그룹에는 많은 사용자와 범주가 있습니다.레일 4 - 여러 모델을 기반으로 한 유효성 검사

category.workgroup_id를 할당 할 수없는 모델 유효성 검사를 작성해야합니다. 기존 사용자에게 특정 workgroup_id가 있고 "미안하지만 해당 작업 그룹에 속한 사용자가 없으므로 할당하지 않을 수 있습니다 이 카테고리에. "

어떤 조언이 필요합니까? 미리 감사드립니다.

답변

1
class Category < ActiveRecord::Base 
    belongs_to :workgroup 

    validate :workgroup_not_empty, if: Proc.new { workgroup_id_changed? } 

    def workgroup_not_empty 
    if workgroup.users.count == 0 
     errors.add(:workgroup_id, "Sorry, but no one belongs to that workgroup, so you may not assign it to this Category.") 
    end 
    end 
end 
+0

감사합니다. 시도했지만 다음 오류가 발생했습니다. '정의되지 않은 메소드가 변경 되었습니까? 10 : Fixnum' –

+0

죄송합니다. 그에 따라 대답을 편집했습니다. 오타였습니다. –

+0

고마워 - 나는 또한 유효성을 검사하기 위해 그것을 변경했다 : on => : create/: update ... 그건 좋은 습관이 아닐까? –