пятница, 1 июля 2011 г.

Re: заменить запрос

Ваш совет был самый дельный - все заработало как задумано.
Спасибо всем кто давал советы и потратил на меня время.

On 29 июн, 17:51, Yury Korolev <yury.koro...@gmail.com> wrote:
> Когда вы используете Model.find_by_sql и выбираете не model.* то нужно
> указывать имена столбцев
>
> @films = Film.find_by_sql(
>    "SELECT  films.name as name, pokazs.date_pokaz as date_pokaz,
> holls.time_pokaz as time_pokaz
>      FROM films
>       INNER JOIN pokazs ON films.id = pokazs.film_id
>       INNER JOIN holls ON pokazs.id = holls.pokaz_id
>      order by films.name")
>
> тогда в @films.first будут доступны поля name, date_pokaz, time_pokaz
> Но от модели останется, только одно название :)
> И это все очень и очень не правильно.
>
> 2011/6/29 Курган - Игорь Копырин <kopy...@mail.ru>
>
>
>
>
>
>
>
>
>
> > On 29 июн, 16:54, Sergey Nebolsin <nebol...@gmail.com> wrote:
> > > Из того что я понял (а понять все написанное реально непросто), мне
> > думается
> > > что вы на самом деле хотите что-то типа такого:
> >https://gist.github.com/6c169cc3d503e90b5071. Писал из головы, возможны
> > > косяки и ошибки да.
>
> > > Люди используют Rails, так как конвенции этого фреймворка позволяют
> > писать
> > > хорошо читаемый и легко поддерживаемый код. Но чтобы получить эту
> > читаемость
> > > и поддерживаемость, вам нужно следовать конвенциям, задумываться о выборе
> > > подходящей модели данных, о правильных названиях классов и переменных, об
> > > общей чистоте кода.
>
> > > Если вы хотите писать такие кривые запросы на SQL, как в вашем первом
> > посте,
> > > то лучше использовать PHP. Это не стеб, вы реально ничего не выиграете на
> > > рельсах, если не будете пользоваться их инструментами. Зато проиграете в
> > > возможностях хостинга и времени на конфигурацию.
>
> > > Если же хочется использовать рельсы и наслаждаться всеми их прелестями,
> > > стоит вдумчиво прочитать несколько книжек, или хотя бы туториалы. Примеры
> > > аналогичные вашему разбираются в любой книге по рельсам, как мне кажется.
> > И
> > > если вам все же понадобится в будущем использовать самописный SQL в
> > рельсах
> > > -- вы будете знать, как именно происходит отображение выборки из БД на
> > классы
> > > модели (возможно, для получения этого знания вам придется покопаться и в
> > > исходниках самих рельсов) и почему не стоит в качестве id для класса Film
> > > использовать id из таблицы holls.
>
> > > 2011/6/29 Курган - Игорь Копырин <kopy...@mail.ru>
>
> > Вопроса это не решает
> > Фильм показывается в определенные дни
> > каждый день есть часы показа
> > 3 таблицы: фильм-день-час
> > Это нормальные таблицы :) Они нормально связываются SQL запросами.
>
> > @films = Film.find_by_sql(
> >     "SELECT  films.name, pokazs.date_pokaz,
> > holls.time_pokaz
> >       FROM films
> >       INNER JOIN pokazs ON films.id = pokazs.film_id
> >       INNER JOIN holls ON pokazs.id = holls.pokaz_id
> >      order by films.name")
>
> > Такое меня то же устроит.
>
> > Как вариант работает метод
>
> > @films = Film.connection.select_all (
> >    "SELECT  films.name, pokazs.date_pokaz,
> > holls.time_pokaz
> >       FROM films
> >       INNER JOIN pokazs ON films.id = pokazs.film_id
> >       INNER JOIN holls ON pokazs.id = holls.pokaz_id
> >      order by films.name")
> > но там получается список хэшей Как с ним работать я не могу
> > сообразить.
> > Есть еще предложения? Пускай "кривые" но работающие.
>
> > --
> > --
> > Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
> > "RubyOnRails to russian" на группах Google.
> > FAQ группы находится по адресу:http://ru.wikibooks.org/wiki/RubyFAQ
>
> >  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> > ror2ru@googlegroups.com
> >  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> > ror2ru-unsubscribe@googlegroups.com
> >  Дополнительные варианты находятся на странице группы
> >http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий