用两个单词创建模型

时间:2011-10-04 17:55:29

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.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时,获取构建并在DB上运行的sql是

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

但在迁移和数据库中,业务用户标识的列是BusinessUser_id,这使查询失败。为什么sql构建错误?我用控制台来创建模型。

2 个答案:

答案 0 :(得分:2)

您只需要设置关联将用于: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

答案 1 :(得分:1)

你使用了错误的措辞。你的模型看起来应该是这样的:

class BusinessUser < ActiveRecord::Base  
  has_many :business_places
end

class BusinessPlace < ActiveRecord::Base
  belongs_to :business_user
end

所以基本上使用:business_places而不是:BusinessPlaces

如果使用迁移来设置数据库,则不需要修改外键