2011-10-04 2 views
1

두 모델 중 하나는 BusinessUser이고 다른 하나는 BusinessPlace입니다. 내가 구축하고 DB에서 실행 얻을 business_user.BusinessPlaces.count는 SQL @ 접근을 시도하고 때 BusinessUser는두 단어로 모델 생성

SELECT COUNT(*) FROM "business_places" WHERE "business_places"."business_user_id" = 1 

하지만 마이그레이션과 많은 BusinessPlaces

class BusinessUser < ActiveRecord::Base 
    has_many :BusinessPlaces 
end 

class BusinessPlace < ActiveRecord::Base 
    belongs_to :BusinessUser 
end 

을 가질 수 있습니다 데이터베이스는 비즈니스 사용자 ID에 대한 열이 BusinessUser_id이며 이는 쿼리를 실패하게 만듭니다. 왜 SQL은 잘못 구축 될까? 나는 콘솔을 사용하여 모델을 만들었습니다. 당신은 키에 대한 잘못된 표현을 사용하고

class BusinessUser < ActiveRecord::Base 
    has_many :business_places 
end 

class BusinessPlace < ActiveRecord::Base 
    belongs_to :business_user, :foreign_key => 'BusinessUser_id' 
end 
+0

당신은 모델을 만들 수 있습니까? '레일스 g ModelName'? – marcamillion

+1

레일 G 모델 사용 BusinessUser – Mihai

+0

사람들은 이런 종류의 질문에 응답하지 않고 지침 작성자에게 질문 작성자를 보내십시오. 무료로 시간을 보내십시오. –

답변

3

당신은 협회가 :business_user에 사용됩니다 foreign_key를 설정해야합니다. 귀하의 모델과 같이 보일 것입니다 :

class BusinessUser < ActiveRecord::Base 
    has_many :business_places 
end 

class BusinessPlace < ActiveRecord::Base 
    belongs_to :business_user 
end 

그래서 기본적으로 사용하는 대신 business_places : BusinessPlaces

당신이 당신의 데이터베이스를 설정 마이그레이션을 사용하는 경우

당신이 외래 키를 수정할 필요가 없습니다

한 방법
+0

: foreign_key를 사용 중입니다. 내 클래스는 이제 다음과 같이 보입니다. class BusinessUser 'BusinessUser_id ' 끝 : business_user가 작동하지 않습니다. – Mihai