Как мне перенаправить в root - public / index.html? - PullRequest
24 голосов
/ 07 июня 2011

Я хочу сделать перенаправление на index.html в моей папке application / public.

def get_current_user
   @current_user = current_user
   if @current_user.nil?  
      redirect_to root_path
   end 
end

Как мне этого добиться?

Я не изменил корень в моем маршруте. (Все еще прокомментирован)

 # root :to => "welcome#index"

Я получаю сообщение о том, что root_path не определен.

Как мне изменить route.rb, чтобы root_path указывал на public / index.html?

Ответы [ 4 ]

24 голосов
/ 07 июня 2011

Вы можете назначить именованный маршрут статическому файлу, передав любую непустую строку как :controller и путь к файлу как :action для маршрута:

Application.routes.draw do

  root :controller => 'static', :action => '/' 
  # or
  # root :controller => 'static', :action => '/public/index.html'

end

# elsewhere

redirect_to root_path # redirect to /

Предполагая, что выесть public/index.html, это то, что будет подано.

8 голосов
/ 28 апреля 2016

на контроллере

 redirect_to root_path (will redirect to root '/')
4 голосов
/ 18 ноября 2015

файл маршрута:

     root 'main#index'

Контроллер: * +1004 *

     class MainController < ApplicationController
       def index
         redirect_to '/index.html'
       end
     end

и при использовании действия контроллера rails 4 в режиме реального времени это может вести себя как одностраничное приложение, использующее M & C с поворотом на V

4 голосов
/ 07 июня 2011

То, что вы хотите сделать, не совместимо с Rails.

Rails - это MVC, C для контроллера, V для просмотра.

Так что его внутренностям нужны оба.

Хорошо, public/index.html отображается по умолчанию, но это только потому, что процесс обойден.

Таким образом, вы можете создать контроллер static с действием index и соответствующим ему видом (просто скопируйте / вставьте в него содержимое вашего текущего public/index.html файла).

Затем установите:

root :to => "static#index"

И, пожалуйста, удалите файл public/index.html:)

...