보석이나 모델 별 설정 방법이 있는지 궁금합니다. 예를 들어, 사용자 환경 설정.ActiveRecord 인스턴스 설정
모델별로 기본 설정을 갖고 싶지만 (클래스 속성을 말합니다.) 다른 테이블에서 정의 할 수 있습니다 (모델에 직렬화 가능 필드가 필요 없음). 예를 들어
:
user = User.find(1)
user.settings.newsletter # => true
키 => 문자열 값 => 문자열을 입력 => 문자열 (부울, 날짜, 문자열 등의 스키마를 가지고 UserSetting의 모델이 될 것이다 .. .)
UPDATE :
것은 여기에서 끝이 내 솔루션입니다. 나는 사용자 has_many의 UserSettings로 이것을 구현하는 것이 설정에 대한 값 유형 (부울, 시간 등)
def setting(key, whiny=true)
s = user_settings.where(:key => key).first
if s
case s.value_type
when 'Boolean'
s.value.to_i == 1
when 'Time'
Time.parse(s.value)
else
s.value
end
else
if whiny
raise NameError, "Setting key #{key} does not exist for #{name}."
else
nil
end
end
end
멋지 네요 .try (: value)가되어야합니다. –
@RobertRoss 아, 그래. 그것을 수정했습니다. 감사. – MrTheWalrus
최종 결과에 관심이 있으시면 원본 게시물을 업데이트하십시오. –