如何重定向到root - public / index.html?

时间:2011-06-06 20:10:53

标签: ruby-on-rails path redirect root

我希望在我的应用程序/公共文件夹中重定向到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?

5 个答案:

答案 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'