2010-11-25 2 views
0

안녕 얘들 아. 레일즈 모델 연합 혼동

Events는 "항목을 로그"기본적으로 있습니다

  • 카테고리
  • 이벤트
  • 잠금
  • 항목
  • 사이트
  • 사용자 : 나는 다음과 같은 모델을 가지고있다. 다른 말로하면, 어떤 행동이 무엇에 저장되었는지는 Item에 의해 무엇 User 무엇 Category에 의해 저장됩니다. 당연히, 나는 이것에 대해 생각할 때, "하나의 사용자를 가짐", "하나의 범주를 가짐", "하나의 항목을 가짐"등을 생각했습니다. 그러나 이것은 임의의 지정된 User 행에 Event에 대한 외래 키가 존재한다는 것을 의미하지만 이것은 내가 원하는 것이 아닙니다. 나는 Event 때문에 그냥 어떤 User에 관한 정보를 제공되면, Event 행의 외부 키를 원하는 Category

    그래서 나의 이해는 내가 대신 Event는 "사용자에 속한다"고 말을해야한다는 것입니다, "카테고리에 속한다", 등등, 각각 "많은 이벤트가 있습니다"라는 답은 맞습니까? 나는 이것이 다른 대부분의 협회와 마찬가지로 논리적으로 읽지 않기 때문에 확신하고있다. 별로 좋지 않으므로 상대방 (예 : user.event)에서 이벤트에 액세스 할 필요가 없거나 이벤트에 액세스 할 수 있기를 원합니다. 따라서 이렇게하면 belongs_to 전화를 추가하고 다른쪽에 has_one 전화를 추가하지 않겠습니까?

    아마 내가 잘못 설계했습니다.

    내가 결국, 행 가득 '로그 페이지를'렌더링 행이 같은 작은 선물 설명에 도달 할 수 있도록하려면 : 나는 필요하지 않은

    event.user event.action event.item event.category 
    
+0

acts_as_audited를 보셨습니까? 그것은 당신이 상자에서 바라는 것을 정확하게하지 않습니다. 그러나 최소한의 노력으로 의지 할 것입니다. – EmFi

답변

1

을/액세스 할 수 있도록하려면 다른 측면 (즉, user.event)에서 이벤트가 발생하면 의미가 없습니다. 그래서 이렇게하면 그냥 belongs_to 호출을 추가하고 다른쪽에는 has_one이 이 아닌가요?

둘 다 (belongs_tohas_many)를 추가하십시오. 물론 user.event은 의미가 없지만 user.events은 의미가 있습니다.

+0

흠 사실입니다. 고마워요! 그래서 나는 그것을 받아 들인다. 내 결론은 옳은가?이벤트 belongs_to 사용자, 사용자 has_many 이벤트? –

+0

네, 맞습니다. – rwilliams

1

예, 여기 has_many & belongs_to 연관을 사용하고 싶습니다. 액티브 레코드의 맥락에서, belongs_to에 대한 필요성을 정의하는 것은 has_many이다. "모델 (a) has_many 다른 모델 (b) 다음 해당 모델 (b) belongs_to 첫 번째 모델 (a)".

사용자는 관련 이벤트가 많으므로 이벤트가 사용자에게 속하게됩니다.

다른 한편으로는 사용자가 하나의 이벤트 만 연결된 경우이 모델은 "has_one"연관이 있습니다.

+0

감사! 감사합니다. –