2011-10-04 57 views
1

我有兩個模型,一個名爲BusinessUser,另一個名爲BusinessPlace。 的BusinessUser可以有很多BusinessPlaces用兩個詞創建模型

class BusinessUser < ActiveRecord::Base 
    has_many :BusinessPlaces 
end 

class BusinessPlace < ActiveRecord::Base 
    belongs_to :BusinessUser 
end 

當我試圖訪問@ business_user.BusinessPlaces.count的SQL即得到建立和運行DB是

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

但在遷移和數據庫業務用戶標識的列是BusinessUser_id,這會使查詢失敗。爲什麼SQL會被錯誤地編譯?我使用控制檯來創建模型。

+0

如何做你建立模型?用'rails g ModelName'? – marcamillion

+1

隨着軌道克模型BusinessUser – Mihai

+0

人們,不要回答這類問題,只需發送問題創建者到guides.rubyonrails.org停止免費的時間。 –

回答

3

你只需要設置的關聯將被使用:business_user的foreign_key:

class BusinessUser < ActiveRecord::Base 
    has_many :business_places 
end 

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

使用:foreign_key正在工作。我的班現在看起來像這樣:class BusinessUser 'BusinessUser_id' 以:business_user不工作 – Mihai

0

你使用了錯誤的措辭鍵。你的模型應該像這樣:

class BusinessUser < ActiveRecord::Base 
    has_many :business_places 
end 

class BusinessPlace < ActiveRecord::Base 
    belongs_to :business_user 
end 

所以基本上使用:business_places代替:BusinessPlaces

如果使用遷移設置你的數據庫

你不應該需要修改外鍵

+0

這不起作用。 – Mihai