您好,我得到了以下错误:
未知操作找不到DemoController的操作'other_hello‘
在输入这个重定向代码(与Rails4Essential training中显示的完全相同)之后,我使用的是Rails版本4.2.0
def other_hello
redirect_to(:controller => 'demo', :action => 'index')
end
def lynda
redirect_to('http://lynda.com')
end所以基本上它不会因为某些原因而重定向我?
route.rb具有以下路由:
root 'demo#index'
match ':controller(/:action(/:id))', :via => :get服务器给出以下错误:
2015-01-16 04:47:25 +0800开始获取::1的"/demo/other_hello“
AbstractController::ActionNotFound (找不到DemoController的操作'other_hello‘):
它在任何地方都没有重定向的迹象:(
发布于 2015-01-15 14:11:49
因此,这意味着您的路由需求无法在您的控制器上找到合适的操作。仔细检查文件中控制器的拼写,可以是DemoController或者(最好是)复数形式的DemosController。
编辑
发生的情况是,您的rails路由器正在将您的应用程序定向到未知路径。编辑rails路由器,使其如下所示:
match '/other_hello', to: 'demo#other_hello', via: :get
您在Rails应用程序中采取的每个主要操作(除了少数边缘情况)都将从您的路由器开始,并向下一直到您的视图。当Rails找不到完成请求所需的位置时,它将抛出一个UnknownAction错误。在这种情况下,您只是还没有指示它去哪里。
进行这些更改,并确保重新启动服务器;每次在Rails应用程序中更改路由时,您都会希望这样做。
编辑2
如果您想要一种更好的方式在other_hello操作中编写重定向,只需使用redirect_to root_path。在此过程中,您将了解有关路径的更多信息,但只需知道root_path是您的应用程序中主页的表示形式,您在其中编写了:root 'demo#index'
https://stackoverflow.com/questions/27944216
复制相似问题