2010-04-22 7 views
4

다 대다 관계로 두 개의 테이블을 설정했습니다. 인시던트와 사용자. 사용자가 로그인하여/사고 페이지 (색인)를 볼 때 관련된 모든 인시던트를 표시하려고합니다. 불행하게도, 다음과 같은 오류가 발생합니다레일 : 다 대다 관계에서 '테이블을 찾을 수 없습니다.'

Could not find table 'incidents_users' 

내가 실제로 테이블 'users_incidents'를 만들었을 때, 'incidents_users'테이블을 찾고 레일을 보인다. 'users_incidents'는 단순히 user_id 및 incident_id를 보유합니다.

나는 분명한 뭔가를 놓치고 있습니까? 나는 레일에 비교적 익숙하지 않아, 간과 한 문제가 될 수 있습니다.

다음은 incidents_controller.rb 여기

# GET /incidents 
# GET /incidents.xml 
def index 
    @incidents = current_user.incidents 

    respond_to do |format| 
    format.html # index.html.erb 
    format.xml { render :xml => @incidents } 
    end 
end 

의 관련 섹션은 index.html.erb

<% for incident in @incidents %> 
    <tr> 
    <td><%=h incident.other_id %></td> 
    <td><%=h incident.title %></td> 
    <td><%= link_to 'Show', [@customer, incident] %></td> 
    <td><%= link_to 'Edit', edit_customer_incident_path(@customer, incident) %></td> 
    <td><%= link_to 'Destroy', [@customer, incident], :confirm => 'Are you sure?', :method => :delete %></td> 
    </tr> 
<% end %> 

감사의 관련 섹션입니다! 더 많은 정보가 도움이 될 경우 알려 주시기 바랍니다.

답변

10

has_and_belongs_to_many 연관을 사용할 때 레일스 규칙은 테이블 이름이 연관을 구성하는 모델의 클래스 이름의 어순 순서에서 파생되기 때문에 조인 테이블을 incidents_users이라고해야합니다. documentation에서

:

은 그래서 개발자와 기본을 줄 것이다 프로젝트 사이에 조인 "developers_projects"의 테이블 이름에 가입 "D"가 "P"를보다 우위에 있기 때문이다. 이 우선 순위는 < 문자열에 대한 연산자를 사용하여 계산됩니다. 이 문자열이 다른 길이이고, 만약 그 긴 문자열을 하나보다 더 짧은 사전 우선적으로 고려 이고, 최단 길이 까지 비교할 때 문자열 같다는 것을 의미한다. 예를 들어, 하나의 테이블을 "paper_boxes"와 이 때문에 "paper_boxes"이름의 길이 "papers_paper_boxes"의 테이블 이름을 결합 생성 "논문"하지만, 사실 을 조인 테이블을 생성 기대 "paper_boxes_papers"중 이름 테이블 이름이 너무 협회를 지정할 때 :join_table 옵션을 사용하여 재정의 할 수

참고 :

class Incident < ActiveRecord::Base 
    has_and_belongs_to_many :users, :join_table => 'users_incidents' 
end 

class User < ActiveRecord::Base 
    has_and_belongs_to_many :incidents, :join_table => 'users_incidents' 
end 

— 당신이했습니다하지 않는 한 일반적으로 가장 불과하지만 레일 '규칙을 갈 것 당신을 방해하는 특별한 이유.

+0

간단합니다. 감사! :) – Magicked

+0

와우, 업데이트 주셔서 감사합니다! 나는 공식적인 API 문서를 이해하는 방법을 천천히 배우고있다. 도와 주셔서 정말 고맙습니다. – Magicked

+0

문제 없음 :-) Rails 가이드도 잊지 마십시오. http://guides.rubyonrails.org/ –

관련 문제