데이터베이스와 모델 모두에서 열거를 유지 관리하는 명확한 방법을 찾고 싶습니다. 레일즈 모델과 데이터베이스에서 상수 enums
내가 1 또는 푸를 얻기 위해 내가 더 나아가 그래서 내가 푸 :: TYPES.HELLO을 할 수있는 열거 클래스를 작성했습니다class Foo < ActiveRecord::Base
TYPES = {1 => :hello, 2 => :hi}
end
유형의 상수 열거 형과 액티브 클래스를 가지고 말 : : TYPES.HI 2를 얻으려고.
조인을 할 수 있도록 데이터베이스에 이러한 유형이 필요합니다. 현재 FooType 모델을 만들고 Foo belongs_to : foo_type을 가지고 있으므로 Foo는 foo_type_id 필드를 갖습니다. 내가 때마다 데시벨 테스트 종자하지 않는
- 테스트 환경 파괴 : 때문에
class Foo < ActiveRecord::Base belongs_to :foo_type # 1 -> hello, 2 -> hi end
그러나이 불편하다. 유형은 상수로 가정되므로 코드에서 직접 사용됩니다. 이것은 내가 새로운 유형을 추가하는 경우
- , 나는 모든 데이터베이스 에이를 반영 할 필요가 아마 내가 모델로 DB에서 foo_type_ids를 당겨 정적 열거를 할 경우는
- ,이 또한 테스트에서 휴식 가장 큰 고통
- 각 환경 유형의 코드에서 열거 그냥 코드를 읽을 이외의 아무것도하지 않습니다 갖는
이러한 클래스는 ActiveRecords 여야합니다. 내가하고 싶은 일은 모델에 정의 된 상수와 db (정적 열거 자없이) 사이의 일관성을 유지하는 것입니다. – phillee