首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4基本培训:重定向错误

Rails 4基本培训:重定向错误
EN

Stack Overflow用户
提问于 2015-01-14 21:34:08
回答 1查看 119关注 0票数 0

您好,我得到了以下错误:

未知操作找不到DemoController的操作'other_hello‘

在输入这个重定向代码(与Rails4Essential training中显示的完全相同)之后,我使用的是Rails版本4.2.0

代码语言:javascript
复制
def other_hello
  redirect_to(:controller => 'demo', :action => 'index')
end

def lynda
  redirect_to('http://lynda.com')
end

所以基本上它不会因为某些原因而重定向我?

route.rb具有以下路由:

代码语言:javascript
复制
  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‘):

它在任何地方都没有重定向的迹象:(

EN

回答 1

Stack Overflow用户

发布于 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'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27944216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档