我希望在我的应用程序/公共文件夹中重定向到index.html。
def get_current_user
@current_user = current_user
if @current_user.nil?
redirect_to root_path
end
end
我如何实现这一目标?
我没有修改我的routes.rb中的根(它仍然被注释)
# root :to => "welcome#index"
我收到一条错误,提到root_path未定义。
如何修改routes.rb以便root_path指向public / index.html?
答案 0 :(得分:24)
您可以通过将任何非空字符串: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
,这就是将要提供的服务。
答案 1 :(得分:8)
redirect_to root_path (will redirect to root '/')
答案 2 :(得分:4)
你想要做的不是Rails兼容。
Rails是MVC,C代表控制器,V代表视图。
所以它的内部需要两者。
好的,默认显示public/index.html
,但这只是因为绕过了进程。
因此,您可以使用static
操作创建一个index
控制器,并显示相应的视图(只需复制/粘贴当前public/index.html
文件的内容即可。)
然后设置:
root :to => "static#index"
请删除public/index.html
文件:)
答案 3 :(得分:4)
路线档案:
root 'main#index'
控制器:
class MainController < ApplicationController
def index
redirect_to '/index.html'
end
end
并且使用rails 4控制器动作,这可以像使用M&amp ;;的单页应用程序一样。 C上有一个扭曲的V
答案 4 :(得分:0)
routes.rb
...
root to: redirect('public/index.html')
...
这会将所有请求重定向到'/'
和'public/index.html'
。