Создание моделей с двумя словами - PullRequest
1 голос
/ 04 октября 2011

У меня есть две модели, одна называется 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, получающий сборку и запуск на БД, имеет вид

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

, но вМиграция и в базе данных столбец для идентификатора бизнес-пользователя является BusinessUser_id, что делает запрос сбой.Почему sql собирается быть неправильно построен?Я использовал консоль для создания моделей.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Вам просто нужно установить иностранный_ключ, который ассоциация будет использовать для :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 голос
/ 04 октября 2011

Вы используете неправильную формулировку для клавиш. Ваши модели должны выглядеть так:

class BusinessUser < ActiveRecord::Base  
  has_many :business_places
end

class BusinessPlace < ActiveRecord::Base
  belongs_to :business_user
end

, поэтому в основном используйте: business_places вместо: BusinessPlaces

если вы используете миграцию для настройки баз данных, вам не нужно изменять внешние ключи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...