我有两个模型,一个名为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构建错误?我用控制台来创建模型。
答案 0 :(得分:2)
您只需要设置关联将用于:business_user
的
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
如果使用迁移来设置数据库,则不需要修改外键