2011-10-04 111 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