| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Ruby: Базы данных > Первая работа с БД |
| Автор: Ramira 16.9.2009, 12:22 |
| В БД есть три таблицы: maillists(id, name), subscribes(id, maillists_id), messages(id, maillists_id). Необходимо вывести на экран таблицу: Имя_рассылки(из maillists) Кол-во_подписчиков (посчитать в subscribes) Кол-во_выпусков(посчитать в messages). Только начала разбирать ruby, работа с БД понимается с трудом. |
| Автор: Ramira 16.9.2009, 14:11 |
| Более менее разобралась, сделала след.образом: <% maillists=Maillist.find(:all, :conditions => "user_id=1") %> <!-- session[:user]--> <% for m in maillists do %> <%= m.name_mailer %> .... <% subscribe = Subscribe.count(:all, :conditions => "maillist_id = #{ m.id }") %> <%= subscribe %> <% message = Message.count(:all, :conditions => "maillist_id = #{m.id}") %> <%= message %> .... <% end %> может кто-нибудь подскажет, где можно взять литературу о работе с БД в ruby? А то если бы мне не подсказали, в жизни бы не нашла, как это делается... |
| Автор: fixxer 17.9.2009, 14:25 | ||
это при условии что в Maillist есть has_many :subscribes, :messages |
| Автор: source777 19.9.2009, 21:09 | ||
Лучше даже:
В таком варианте, если используются http://railscasts.com/episodes/23-counter-cache-column, то запрос к БД будет всего 1, иначе будет эквивалент кода, приведённого fixxer, только чуть короче. |