유형이 고정 세트 인 경우 Project
모델에 숫자 상수를 정의하고이 번호를 projects
테이블의 열에 저장할 수 있습니다.
class Project < ActiveRecord::Base
# Project categories are constants
CHEAP_PROJECT = 1
SOUND_PROJECT = 2
GRAPHIC_PROJECT = 3
SECRET_PROJECT = 4
# Force project_category_id to be a valid category identifier
validates :category_id, :inclusion => {:in => 1..4}
# At this point you can use the constants
# Here an example of a scope to get the secret projects
scope :secret_projects, where(:category_id => SECRET_PROJECT)
end
하는 중 하나가 될하기 위해 category_id
값을 확인하십시오 : 나는 피하기 위해 열 category_id
전화 여기
예를 들어 (물론 테스트되지 않음) 문제를 as rjz said를 일으킬 것 type
이름을 사용하는 당신이 정의한 일단이 constans가 있으면 Project::SOUND_PROJECT
같은 것을 사용하여 다른 장소에서도 사용할 수 있습니다.
나는 솔루션이 꽤 명확하다고 생각하지만 요구 사항이 변경되면 (항상 변경 ...) 모델을 만들고 이러한 식별자를 유지 관리해야합니다.
조심하세요! 열 이름'type'은 단일 테이블 상속 메커니즘을 트리거합니다 (어쩌면 당신이 할 일이 무엇입니까?) – rjz
좋은 생각입니다. 문제가 생깁니다. 그래도 좀 더 구체적인 이름으로 바꿀 수 있습니다. 어느 쪽이든, 내 질문은 여전히 의미합니다. –