0

나는 사용자, 친구, 관심사 및 휴일과 같은 테이블을 가지고 있습니다. 이 응용 프로그램의 목적은 사용자의 관심사와 그들이 (친구 생일, 기념일 요법을 포함하여) 축하 공휴일뿐만 아니라 친구의 관심사 그래서 내가 그들에게 관련 콘텐츠와 함께 알림을 보낼 수 있습니다. 어쨌든 :Rails 모델 연결 유형

사용자는 관심
있을 것이다 사용자는 아버지 일 사용자들이
-if 어머니 날 (약 10의 목록을) 축하 휴일이있을 것이다
친구도 관심
있을 것이다 친구가됩니다 , 또는 발렌타인 데이를 선택한 경우 (공휴일에) 나는 사람의 이름과 관심사도 함께 저장해야합니다.

그래서 이것을 설정하는 방법이 궁금합니다. 까다로운 것들은 관심사와 휴일입니다.

사용자와 친구들이 모두 접근 할 수 있도록 관심사가 다형성이어야합니까? 아니면 많은 것을 가지고 있습니까?

휴일은 어떻게됩니까? 그 사람들은 이름과 사람의 관심사를 어떻게 기록합니까?

감사합니다.

User :

has_many :friends 
has_many :person_interests, :as => :person 
has_many :interests, :through => :person_interests 
has_many :user_holidays 
has_many :holidays, :through => :user_holidays 

Friend 메신저 정말 아마 일을과 복잡함이 하나 고민 ..

+0

내 친구와 내 친구가 가입하는 경우 내 친구는 친구이고 사용자입니까? (즉, 서로 다른 두 모델) 모델이 서로 다른 경우 관심 분야는 분명히 사용자와 친구에게 다형성 관계가 있어야하며 휴일에는 하나가있을 수 있지만 휴가는 사용자가 아니라 반드시 친구와 관련이 있다고 지정했을뿐입니다. – x1a4

+0

감사합니다. 아니요, 사이트에 대한 소셜 네트워킹 측면이 없으며 사용자는 개인이며 사이트의 다른 사용자와 관계가 없습니다. '친구'의 목적은 사용자가 그 사람의 생일, 관심사의 날짜를 입력하는 것입니다. 그런 다음 친구의 관심사와 관련된 제안이 포함 된 알림을 보내드립니다. 휴일과 비슷합니다. 사용자가 '기념일'을 선택하면 그 사람에게 이름, 날짜 및 관심사를 묻습니다. 그러면 관련 제안을 보낼 수 있습니다. 이해가 되니? 엄청 고마워! – js111

+0

좋아요, 다음 질문 - 단일 관심 레코드가 많은 사용자/친구에게 연결될 수있는 것처럼 사용자간에 공유되도록 의도 된 관심 사항입니까, 아니면 관심사가 단순히 문자열입니까? – x1a4

답변

2

을 이제 내가 당신이 원하는 것을 이해 생각이 내가이 모델 얼마나입니다 :

belongs_to :user 
has_many :person_interests, :as => :person 
has_many :interests, :through => :person_interests 

PersonInterest :

Interest 16,:

has_many :person_interests 
has_many :people, :through => :person_interests # may need an `inverse_of` here 

UserHoliday :

belongs_to :user 
belongs_to :holiday 

Holiday : 설정이와

has_many :user_holidays 
has_many :users, :through => :user_holidays 

, 당신은 당신이 할 필요가 쿼리를 수행 할 수 있어야한다.

+0

감사합니다. 이전 질문에 따르면 "has_many interests through => : person_interests"를 사용하면 사용자의 관심사와 사용자의 관심사를 구별 할 수 있습니까? 다시 한번 감사드립니다! – js111

+0

예를 들어,'@ user.interests'와'@ user.friends.first.interests'를 할 수 있습니다. 그러면 예상대로 작동 할 것입니다. – x1a4

+0

Person 모델이 없습니까? "belongs_to : person" – js111