无法找到操作时如何重定向到root

时间:2014-12-24 15:59:37

标签: ruby-on-rails

我的users_controller只有show action。

当我去0.0.0.0:3000/users/我得到

Unknown action
The action 'index' could not be found for UsersController

我不需要列出所有用户。如果未找到操作,如何重定向到根路径?

我想它应该是这样的

get '*path' => redirect('/')

或者我应该添加

  def index
    redirect_to root_url
  end

ps我使用设计

我试过

 rescue_from AbstractController::ActionNotFound do
   redirect_to root_url
 end

在控制台中显示

AbstractController::ActionNotFound (The action 'index' could not be found for UsersController):

但它并没有重定向我

UP2

如果重要我有

  devise_for :users, path_names:{sign_in: "login", sign_out: "logout"}
  resources :users, only: [:show]

1 个答案:

答案 0 :(得分:1)

在导轨3中打破了{p> rescue_from。不确定它是否在以后的版本中修复了

使用以下解决方案

routes.rb中,在文件末尾添加以下行

match "*path", :to => "application#handle_404"

这基本上意味着,路由中未定义的任何路径最终将转到应用程序控制器中的handle_404。将它放在文件的末尾非常重要

ApplicationController中添加

def handle_404
    redirect_to root_path
end