Подтвердить что ты не робот

Как перенаправить на root - public/index.html?

Я хочу сделать перенаправление на index.html в моей папке приложения/общего доступа.

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

Как мне это достичь?

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

 # root :to => "welcome#index"

Я получаю сообщение об ошибке, указывающее, что root_path undefined.

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

4b9b3361

Ответ 1

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

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

Поэтому его внутренним элементам нужны оба.

ОК, public/index.html отображается по умолчанию, но это просто потому, что процесс обходит.

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

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

root :to => "static#index"

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

Ответ 2

Вы можете назначить именованный маршрут статическому файлу, передав любую непустую строку как :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, это то, что будет подано.

Ответ 3

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

 redirect_to root_path (will redirect to root '/')

Ответ 4

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

     root 'main#index'

контроллер:

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

и используя рельсы 4 действия контроллера live, это может вести себя как одностраничное приложение с использованием M и C с завихрением на V