На основании этой информации, вам можно только порекомендовать только прочитать наконец документацию к ActiveRecord и привести модель приложения в нормальный вид (а использование любого ORM всегда накладывает ограничения на то, что можно считать "нормальным"; то что нормально в plain db, может быть совсем не нормально для ORM). Тогда ваш вопрос решится сам собой, потому что при нормальной модели ваша задача решается абсолютно стандартными средствами, без всякого самописного SQL.
Предлагать вам кривые решения я не буду, и другим участникам группы не советую. Просто потому, что пути проектов часто бывают причудливыми, и может так случиться, что кому-то из нас в будущем придется разбираться в этом вашем коде, а никому не приятно копаться в помойке.
Это довольно цинично, но раз вы не хотите использовать "прямые" решения, лучше не помогать вам плодить говнокод, и тогда произойдет одно из трех: 1) проект загнется; 2) вы не сможете сделать его на рельсах и перепишете на чем-нибудь другом; 3) вы все-таки задумаетесь над тем, что раз вы испытываете такие сложности, значит у вас не все так "правильно" с БД и моделью, начнете читать документацию и писать грамотный код. Каждый из этих вариантов сильно лучше варианта существования помоечного проекта в Rails-экосистеме.
Какое-то у меня сегодня лирическое настроение :)
2011/6/29 Курган - Игорь Копырин <kopyrin@mail.ru>
> 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.
>
>
Вопроса это не решает
Фильм показывается в определенные дни
каждый день есть часы показа
3 таблицы: фильм-день-час
Это нормальные таблицы :) Они нормально связываются SQL запросами.
"SELECT films.name, pokazs.date_pokaz,
@films = Film.find_by_sql(
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
--
Sergey Nebolsin
CTO at Prophotos.ru, Bestphotographer.ru and Fotoshkola.net
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "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
Комментариев нет:
Отправить комментарий