문제

Rails 협회에 대한 약간의 초보자 질문.

버그 모델과 상태 모델이 있습니다. 상태는 기본적으로 키/값 쌍 테이블입니다. 사용 가능한 선택 중에서 Bug Has_one 상태가 가장 의미가 있다고 말합니다. 그러나,에 따르면 이것

Contents_to ContentTemplate에 속합니다. 돌아가서 문제를 어떻게 묘사했는지 살펴보면 그것이 작동한다는 것을 알게 될 것입니다. SONGS_TO를 사용하면 테이블이 외국 키에 대한 책임을 수락합니다. 따라서 내용에는 content_template_id가 있습니다. ContentTemPlate에는 아무것도 필요하지 않습니다. 나는 그것을 마음대로 지적 할 수있다. 완료.

버그 속성 _to 상태가 더 적절합니다 (버그가 외국 키를 가져와야하므로). 의미 적으로, 그의 모범은 의미가 있지만, 내 것이 아무도 없습니다. 이것은이 상황에서 이상하게 보이는 철도의 기발한 일입니까, 아니면 내가 무언가를 이해하지 못하거나 잘못한 일입니까?

도움이 되었습니까?

해결책

예, 당신은 방금 레일에서 약간 이상한 시나리오를 발견했다고 생각합니다. "상태"를 버그가 속한 일종의 범주로 보는 것이 유용 할 수 있다고 생각합니다. 그 빛에서는 의미가 있습니다.

다른 팁

TABLE:
    Bug
    id integer
    desc string
    status_id integer fk

    Status
    id integer
    desc string

RAILS MODEL:
    Bug
    belongs_to :status

    Status
    has_many :bugs

당신은 당신이 얻고 싶은 버그와 상태 사이의 관계 사이의 관계를 정확하게 설명하지는 않았지만 다음 중 하나에 관심이 있다고 생각합니다.

  • 일대일 :이 경우에는 있어야합니다 has_many 버그 클래스에서 belongs_to 상태 클래스에서
  • 일대일 :이 경우에는 있어야합니다 has_one 버그 클래스에서 belongs_to 상태 클래스에서.

두 경우 모두 상태에는 외국 키가 포함됩니다. 두 번째 경우에는 일대일 관계가 실제로 비대칭이라는 사실 때문에 문구는 약간 이상합니다 (한쪽에는 FK가 있어야합니다).

상태가 조회/키 값 테이블 인 경우 HABTM(has_and_belongs_to_many) 상태와 버그의 관계. habtm과 함께, 당신이 끝날 것 bugs_statuses 가지고있는 테이블에 가입하십시오 bug_id 그리고 status_id 버그 및 상태 테이블과 함께 열.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top