2012-04-10 2 views
0

다른 모델의 여러 속성에 속하는 그러나 나는 약간 여기에 혼동 해요 :모델이 바보 같은 질문 수 있습니다

을 내가 2 개 속성이있는 사용자 모델이 있습니다 색상을 가질 수 머리와 눈을, 값.

사용자 테이블의 머리 및 눈금 열에서 문자열을 두 번 문자열로 참조하는 대신 내 특성이 가리킬 사용자 모델과 관련된 별도의 색 모델을 사용하는 것이 좋습니다.

나는 그 방법을 이해할 수 없다. has_one, has_many 또는 polymorphic 연관이 필요합니까? 내 사용자 및 색상 모델을 어떻게 설정합니까? 머리카락과 눈을위한 특정 모델을 만들어야합니까? 여기

는 레일 콘솔에서 내가 원하는 것입니다 :

u = User.first 
u.update_attribute(:hair, Color.find_by_name("blue") 
u.update_attribute(:eyes, Color.find_by_name("green") 
u.save 

u.eyes # green 
u.hair # blue 

나는 이것이 아주 기본적인 질문 알지만, 난 정말 여기에 몇 가지 도움이 필요합니다!

답변

1

사용 방식이 hair_color_ideyes_color_id 필드

class User < ActiveRecord::Base 
    belongs_to :hair_color, class_name: "Color" 
    belongs_to :eyes_color, class_name: "Color" 
end 

겠어요 -을 포함한다)

감사합니다

u = User.new 
u.hair_color = Color.find_or_create_by_name("blue") 
u.eyes_color = Color.find_or_create_by_name("green") 
u.save 
... 
u.hair_color.name 
#=> blue 
+0

너무 빨리 답변 해 주셔서 감사합니다. 나는 거기에서 정말로 붙이게되었다! – cl3m

관련 문제