2012-02-27 3 views
0

В моем приложении Facebook используется интерфейс AS3 и интерфейс API Rails.Как направить «/» на public/index.html в routes.rb?

Facebook требует, чтобы ваша страница с холстом (страница вашего приложения была втянута в хром Chrome) либо была динамической (index.erb), либо каталогом (в конце с «/»). Поскольку я не знаю взглядов Rails, я пошел с URL-адресом «myapp.herokuapps.com/».

журналы Heroku дают эту ошибку:

ActionController :: RoutingError (нет маршрута матчей "/")

Как я могу соответствовать "/" в индексном файле?

соответствует "/" => ????

Я привык к маршрутизации ресурсов, но не статических страниц.

ответ

6

Если вы хотите отобразить статическую страницу в качестве своего корня, вы должны использовать драгоценный камень высокого напряжения. Это позволяет добавлять статические страницы на ваш сайт следующим образом:

  • Добавить gem 'high_voltage' в свой Gemfile
  • Поместите свою статическую home.html.erb страницу в /app/views/pages/
  • Маршрута к вашей статической странице с root to: => 'high_voltage/pages#show', :id => 'home'

Не требуется перенаправление.

Документы высокого напряжения можно найти по адресу: https://github.com/thoughtbot/high_voltage.

+0

Bam! Это сделал трюк. –

+0

Я бы проголосовал, но у меня пока нет репутации. –

3

Вы должны определить root_path в вашем routes.rb файле

Так root :to => 'YOUR_CONTROLLER_NAME#YOUR_CONTROLLER_ACTION' должны это сделать.

Если вы хотите, чтобы отобразить его в файл, а затем просто дать имя файла в общедоступном каталоге, так что если вы хотите, чтобы отобразить общественную/index.html в корень, то это будет работать:

root :to => 'index' 
+0

Значит, «/» автоматически сопоставляется с корнем? Итак, как же тогда я буду сопоставлять корень со страницей, а не с контроллером? root: to => "public/index.html"? –

+0

См. Мой обновленный ответ. Примите и подтвердите, если это сработает для вас! – TheDelChop

+0

маршрут по-прежнему ожидается, ожидая действия param: /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.0.9/lib/action_dispatch/routing/mapper.rb: 171: in 'default_controller_and_action ': missing: action (ArgumentError) –

0

Оба ответа верны; Однако, люди в thoughtbot рекомендуем следующее:

  1. Под "Config/инициализаторах /" создать файл "high_voltage.rb"
  2. Запись в следующем коде

    HighVoltage.configure do |config| 
        config.home_page = "home" 
    end 
    
  3. Перезагрузите сервер

Вы можете проверить документацию на https://github.com/thoughtbot/high_voltage#specifying-a-root-path