Как перенаправить на 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?
Ответы
Ответ 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