Проблема маршрутов Rails с использованием Phusion Passenger/Apache2

Примечание. Приложение использует Rails 3.2.1 и Ruby 1.9.3.

Я пытаюсь настроить приложение rails с помощью Passenger и Apache 2. Когда приложения изначально создаются, оно загружает страницу rails по умолчанию, используя файл index.html по умолчанию в /public.

Проблема возникает, когда я запускаю rails generate controller home index и удаляю файл index.html. Затем в моем файле route.rb я добавил root :to => "home#index". Затем я получаю сообщение об ошибке: «Извините, но что-то пошло не так».

В моем журнале ошибок написано File does not exist, и когда я добавляю обратно в index.html, он снова загружается нормально.

Итак, кажется, что он все еще ищет файл index.html даже после того, как я его удалю.

Я, вероятно, упускаю что-то очень очевидное, поэтому любая помощь очень ценится


person Ian    schedule 19.02.2012    source источник
comment
Можете ли вы предоставить нам полную трассировку стека из производственного журнала?   -  person iltempo    schedule 19.02.2012
comment
sistho, прошу прощения за отсутствие ответа. К сожалению, это не сработало. Я могу попробовать ваше решение еще раз, так как всегда возможно, что я что-то упустил, но пока оно остается сломанным.   -  person Ian    schedule 06.08.2012


Ответы (1)


Поскольку вы определили свой корень в "home#index", у вас должен быть HomeController с методом индекса и представлением, расположенным в app/views/home/index.html.erb.

Обычно метод контроллера «подготавливает» данные для представления, и это означает, что большинство методов контроллера заканчиваются вызовом render, предоставляя ему параметры для представления.

Этот шаблон настолько обычен, что вам не нужно вызывать рендеринг, если вы просто хотите отобразить стандартный вид. А стандартный вид находится в app/views/[controller_name]/[action_ame](.[request_format])(.[precompilation_format)

Если у вас есть старый файл index.html в общей папке, то обслуживается статический файл, и ваш контроллер не срабатывает. Если у вас нет этого файла, ваш контроллер срабатывает, и ваш индексный метод теперь пытается найти «индексный» файл, но в app/views/home/index.

request_format является необязательным и обычно опускается, если ваш сайт только на html. это становится полезным, когда ваше действие может отвечать либо html, json, xml,...

precompilation_format обычно erb для html request_format, но есть и другие (haml, rabl, builder,...)

person systho    schedule 19.02.2012