| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Ruby On Rails > NameError, как фиксить |
| Автор: mozilla 3.4.2010, 13:50 |
| Здравствуйте. Я новчичок на форуме. Помогите пожалуйста. В общем нужно развернуть rails-приложение под apache + fastcgi. Затратил день, вроде понял что к чему... Но опишу подробно всё. Хостер вручил мне логин/пасс для доступа по FTP. Вот такие там директории: cgi-bin conf (с конфиг-файлом httpd.conf) html log var tmp В директории html поддиректория public. Насколько я понял из httpd.conf, вот поэтому: ExtendedStatus On DocumentRoot /usr/local/webhosting2/MYDOMAIN/html/public/ FastCgiIpcDir /var/tmp/MYDOMAIN SocketPath /var/tmp/MYDOMAIN/fcgidsock <Directory /usr/local/webhosting/MYDOMAIN/html/public/> AddHandler fcgid-script .fcgi # AddHandler fastcgi-script .fcgi # FastCgiIpcDir /var/tmp/qwerty-it.ru AddHandler cgi-script .cgi Order allow,deny Allow from all Options +Indexes +ExecCGI +FollowSymLinks </Directory> что именно в директории public должен распологатсья .htacces, dispatch.fcgi. Дальше, мой проект создавался без параметра -D, потому файлов dispatch.cgi и dispatch.fcgi не было. Я их просто вязл с другого созданного проекта. Создал в папке /html/public файл .htaccess. Вот его содержимое: AddHandler fcgid-script .fcgi AddHandler cgi-script .cgi Options +FollowSymLinks +ExecCGI RewriteEngine On RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] Сюда же закинул dispatch.fcgi. И rails-проект киинул в папку /html. В результате при запросе http://MYDOMAIN/ получаю с стандартную рельсовую welcome-страничку. Информация о версии рельсов, гемов и т.д. появляется. Т.е. подразумеваю, что я на верном пути. Далее на сервере имеется база. С помощью phpMyAdmin я экспортирую туда все таблицы, нужные для выполнения проекта. Правлю файл database.yml. Переименовываю файл /html/public/index.html (welcome-страничку) и добавляю root контроллер в routes.rb и по запросу http://MYDOMAIN/ вижу ошибку: NameError in [ControllerName]#[ActionName] uninitialized constant [ControllerName] Session dump: --- Framework Trace даёт: /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:443:in `load_missing_constant' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:80:in `const_missing' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:92:in `const_missing' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/inflector.rb:361:in `constantize' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/inflector.rb:360:in `each' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/inflector.rb:360:in `constantize' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/string/inflections.rb:162:in `constantize' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/routing/route_set.rb:443:in `recognize' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/routing/route_set.rb:436:in `call' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:87:in `dispatch' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:121:in `_call' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:130 и т.д. И так со ВСЕМИ контроллерами (запросами). Помогите пожалуйста. Подскажите где я не прав. Ошибки в названиях/расположении представлений и т.д. не могут права на жизнь - всё тестировалось на локальной машине под webrick. Огромное спасибо! Если нужно - выложу любые логи, отвечу на вопросы. |
| Автор: source777 6.4.2010, 21:13 |
| Так а куда ты сами исходники запихал? P.S. Возьми нормальный хостинг с Passenger, например, http://partner.hostfabrica.ru/?id=21 или http://locum.ru/ FastCGI для RoR - шлак. |