0

所以我一直在看一个视频,它向我介绍了 ruby​​ on rails 但视频中的那个人在 rails 3 上使用 ruby​​(我在 rails 4.0.0 上使用 ruby​​),当我尝试使用代码时:

匹配 ':controller(/:action(/:id(.:format)))'

它否认它并显示这个......

match如果未指定 HTTP 方法,则不应在路由器中使用该方法。如果您想将您的操作公开给 GET 和 POST,请添加via: [:get, :post]选项。如果您想将您的操作公开给 GET,请get在路由器中使用:

但是我不太明白它在这里问我什么以及当我把它放在路由文件中时

匹配 'new',到:'episodes#new',通过:[:get, :post]

它实际上无法找到我正在寻找的页面。有谁知道我应该输入什么而不是

为 Ruby on rails 4.0.0 匹配 ':controller(/:action(/:id(.:format)))'?

谢谢。

4

3 回答 3

1

match '/new', to: 'episodes#new', via: [:get, :post]

我想你忘记了一个“/”。顺便说一句,更详细地说明“找不到”页面会很有帮助。任何错误信息?

为了理解为什么你应该指定 HTTP 路由方法:

http://guides.rubyonrails.org/routing.html

于 2013-10-28T11:50:19.627 回答
1
match ':controller(/:action(/:id))(.:format)'  

适用于 rails 3.0,但对于 4.0,缺少的链接是via: [:post, :get]您的 rails 命令行中指示的语句。

match ':controller(/:action(/:id))(.:format)' , via: [:post, :get]

效果很好,并且每次生成页面时都不会重新编辑路由文件夹,从而使您的代码保持干燥。

于 2015-06-16T22:10:17.613 回答
0

这是您的问题的解决方案:

match ':controller(/:action(/:id))(.:format)' , via: [:post, :get]
于 2014-07-07T15:00:11.467 回答