2013-07-30 2 views
1

모든 모델에 새로운 레코드를 추가 내가 Building라는 모델 및 Issue라는 또 다른 모델을 갖고 있다고 할 수 있습니다. 레일 - 한 번

Buildinghas_manyIssues

Building

Issuebelongs_to 나는 많은 Issues으로, 여러 Buildings 있습니다. 지금 당장 각 이슈를 한 번에 하나씩 각 건물에 추가해야합니다.

어떻게 동시에 한 IssueBuildings 모두에를 추가 할 수 있습니까?

+0

모든 건물에 동일한 문제가 있다고 x, 한 x 문제를 y로 변경하면 모든 건물의 문제가 y로 변경됩니까? –

+0

그래, 그것이 그것이 작동해야한다고 말하고 싶지만. – Devin

답변

3

는 두 모델의 has_and_belongs_to_many 관계를 필요로 보인다. 그리고 그것을 위해 테이블을 만들 :

rails g migration create_buildings_issues building_id:integer issue_id:integer 

편집 마이그레이션 자동 인덱스를 제거하고 복합 인덱스 추가 :

create_table :buildings_issues, index: false do |t| 
    t.references :building 
    t.references :issue 
end 
add_index :buildings_issues, [:building_id, :issue_id] 

그런 다음 DB에이 테이블을 만들 :

rake db:migrate 

그런 다음 당신은 추가 할 수 있습니다를 여러 건물로 발행 :

any_issue.buildings << Building.all 

또는 건물에 문제를 추가하십시오 :

any_building.issues << heat_issue 
+0

이것은 의미가 있습니다. 나는 그것을 시험해 보겠습니다. 이 질문에 추가하고 싶은 퍼즐은 다음과 같습니다. "건물"에도 단일 '문제점'을 추가 할 수있는 기능을 원합니다. 다른 말로하면, "Building 3"에 문제로 "Heat"를 추가하고 다른 모든 건물에는 "Heat"를 추가하고 싶다면 has_and_belongs_to 연관을 사용하여이 작업을 수행 할 수 있습니까? – Devin

+0

예'building_3.issues << heat_issue' – juanpastas

+0

는'issues'를 나타내는'items'입니까? 아니면 실제로'items'가 될 것인가? 나는 약간의 항목이 – Devin