开发者

How do I redirect to root - public/index.html?

I wish to do a redirection to index.html in my application/public folder.

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

How do I achieve this ?

I haven't modified the root in my routes.rb ( Its still commented )

开发者_JAVA百科 # root :to => "welcome#index"

I get an error saying root_path is undefined.

How do I modify routes.rb so that root_path points to public/index.html ?


You can assign a named route to a static file by passing any non-empty string as :controller and the path to the file as the :action for the route:

Application.routes.draw do

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

end

# elsewhere

redirect_to root_path # redirect to /

Assuming you have a public/index.html, this is what will be served.


on controller

 redirect_to root_path ## (will redirect to root '/')


route file:

     root 'main#index'

controller:

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

and using rails 4 controller action live this can behave like a single page application using the M & C with a twist on the V


What you want to do is not Rails compatible.

Rails is MVC, C for controller, V for view.

So its internals need both.

Ok, public/index.html is displayed by default but it's just because process is bypassed.

So, you could create a static controller with an index action and it's corresponding view (just copy/paste the content of your current public/index.htmlfile in it).

Then set:

root :to => "static#index"

And please, remove the public/index.html file :)


routes.rb

...
root to: redirect('public/index.html')
...

This will redirect all request to '/', to 'public/index.html'.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜