그런 종류의 시나리오에서는 symbolize
보석을 사용합니다. 필드 옵션을 문자열로 저장하고, 모델 값에 대한 연산을 기호로 수행하고, 라벨에 i18n을 사용하고, 옵션을 기반으로 select
을 빌드하는 헬퍼 세트도 있습니다.
또한 모델 자체에서 사용 가능한 옵션을 설정 했으므로 코드는 매우 깨끗하게 유지됩니다.
하면 체크 아웃 :
class User < ActiveRecord::Base
symbolize :gender, :in => [:female, :male], :scopes => true
symbolize :so, :in => {
:linux => "Linux",
:mac => "Mac OS X"
}, :scopes => true
# Allow blank
symbolize :gui, :in => [:gnome, :kde, :xfce], :allow_blank => true
# Don`t i18n
symbolize :browser, :in => [:firefox, :opera], :i18n => false, :methods => true
# Scopes
symbolize :angry, :in => [true, false], :scopes => true
# Don`t validate
symbolize :lang, :in => [:ruby, :c, :erlang], :validate => false
# Default
symbolize :kind, :in => [:admin, :manager, :user], :default => :admin
end
:
여기 https://github.com/nofxx/symbolize
가 문서의 샘플입니다