Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > Выполнение метода для всех контроллеров и SQL


Автор: xxixx 22.1.2011, 14:04
Совсем недавно начать разрабатывать проект на Ruby on Rails и у меня появилось два вопроса:

1. Как сделать так что-бы всегда при обработке запроса некоторыми контролерами выполнялось какое-то действие, не нарушая DRY? Хотел написать его в ApplicationController
Код

def initialize
...
end

Но естественно это не получилось... Вываливается ошибка.

2. В качестве СУБД я использую PostgreSQL и при выполнении контроллера в логе WEBrick вижу не только свои запросы но и другие, например:
Код

SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"users"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

Скажите так и должно быть? Или от них можно как-то избавиться?

Прошу ногами не пинать так-как в Ruby on Rails совсем новичок. Заранее спасибо за ответы!

Автор: source777 22.1.2011, 16:00
Цитата(xxixx @  22.1.2011,  14:04 Найти цитируемый пост)
 что-бы всегда при обработке запроса некоторыми контролерами выполнялось какое-то действие

формулировка, конечно, слишком расплывчата, но возможно, ты имеешь в виду http://guides.rubyonrails.org/action_controller_overview.html#filters.

Цитата(xxixx @  22.1.2011,  14:04 Найти цитируемый пост)
В качестве СУБД я использую PostgreSQL и при выполнении контроллера в логе WEBrick вижу не только свои запросы но и другие

Что значит "свои запросы"? Ты что raw SQL-запросы пишешь?

Автор: xxixx 22.1.2011, 16:35
За фильтры спасибо большое!

Нет нет я именно использую ActiveRecords...

Автор: source777 22.1.2011, 17:10
Цитата(xxixx @  22.1.2011,  16:35 Найти цитируемый пост)
Нет нет я именно использую ActiveRecords... 

Тогда посмотри какой код какие запросы продуцирует, в этом тебе может помочь к примеру http://www.newrelic.com/. Заодно лучше поймёшь как RoR работает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)