Ruby on Rails map.root не работает - PullRequest
9 голосов
/ 30 июля 2009

Я пытаюсь получить рут моего приложения для маршрутизации на контроллер по умолчанию. Из того, что я прочитал, это должно быть возможно с чем-то вроде этого в нижней части моего файла rout.rb:

map.root :controller => 'albums'

или, возможно, даже:

map.home  '', :controller => 'albums'

Однако, когда я пытаюсь перейти к http://myhost:8000/,, я просто вижу страницу приветствия рельсов. Я перезапускаю приложение с помощью следующей команды после внесения изменений в route.rb и перед тестированием:

sudo mongrel_cluster_ctl restart

Вот еще несколько возможных сведений об окружающей среде:

% rails -v
Rails 2.3.3

% ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

Я уверен, что мне не хватает чего-то простого, но я не вижу, что это такое. Есть идеи?

Ответы [ 6 ]

16 голосов
/ 30 июля 2009

Вы удалили статическую страницу public/index.html, которую создает Rails? Если это все еще присутствует в вашем приложении, оно будет отображаться вместо корневой страницы, которую вы определили в маршрутах.

13 голосов
/ 30 июля 2009

Удалить файл public / index.html.

3 голосов
/ 30 июля 2009
map.root :controller => 'albums'

Это правильный синтаксис.

Несколько вещей, которые нужно попробовать:

  • удалить index.html из общего доступа.
  • Посмотрите на вывод "Rake Routes", вы видите что-то вроде:
root   /  {:controller=>"albums", :action=>"index"}
  • Вы на 100% уверены, что нужный кластер перезапускается: попробуйте запустить скрипт / сервер и перейти в root на порту 3000
1 голос
/ 30 июля 2009

Маршруты в конце routes.rb используются в последнюю очередь, поэтому вы можете попробовать использовать 'map.root...' в верхней части вашего routes.rb

0 голосов
/ 25 августа 2010

У меня немного другая проблема. Я настроил запись map.root, и она работает с mongrel. Однако, когда я использую apache2 в качестве веб-сервера с модулем Passenger, я получаю ошибку «500». Если я заново установлю свой /public/index.html, он будет работать под apache2.

Я пытался перейти прямо как:

Http: /// дом / индекс

Это также дает мне ту же ошибку "500".

Пожалуйста, кто-нибудь может сказать мне, что я делаю не так?

Привет

Я нашел кого-то еще, у кого была такая же проблема. Оказывается, что Passenger работает в производственном режиме, в то время как мое приложение находилось в режиме разработки.

Я перевел Passenger в режим разработки, добавив следующую строку в мой файл Virtual Hosts

RailsEnv = разработка

Перезапустил Apache и все работает !!

Уф!

Purvez

0 голосов
/ 12 сентября 2009

Я почесал голову некоторое время. Удаление файла public / index.html не помогло мне. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...