Поисковый запрос Rails построен неправильно - PullRequest
0 голосов
/ 29 июля 2011

У меня есть модельный объект Business, у него много BusinessPlace, а у бизнес-объекта много BusinessPlacePhone.Для BusinessPlacePhone в базе данных создается столбец с именем BusinessPlace_id, но когда я пытаюсь использовать свойство BusinessPlace.BusinessPlacePhones, чтобы получить все телефоны для бизнес-места, запрос на выборку выглядит так

SELECT "business_place_phones".* FROM "business_place_phones"  WHERE "business_place_phones"."business_place_id" = 1

Но запрос долженвыполните поиск в столбце BusinessPlace_id, поскольку он существует.И я получаю

SQLException: no such column: business_place_phones.business_place_id: 

В чем проблема, почему rails создает таблицу в базе данных одним способом, а поисковые запросы - другим?

Я пытаюсь вручную переименовать столбец и работаетдля запросов, но не соблюдая свойства модели.

Есть какой-либо способ решить эту проблему, или я должен просто переименовать модель только с одним именем, таким образом BusinessPlace станет Place, а BusinessPlacePhone станет Phone?

1 Ответ

0 голосов
/ 29 июля 2011

Rails использует подчеркивание в таких ситуациях.

Вы определенно не должны называть ничего, используя CamelCase и подчеркивание вместе.

На самом деле, если это не имя класса, забудьте о CamelCase и придерживайтесьподчеркивание, не называйте свои поля BusinessPlace_id или BusinessPlaceId или что-нибудь подобное, используйте вместо этого business_place_id.

Чтобы узнать больше соглашений об именах, прочитайте эту ссылку здесь

Тогда твои проблемы исчезнут.Надеюсь, это поможет.

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