Ruby on rails 如何修复链接到url中缺少的正斜杠

Ruby on rails 如何修复链接到url中缺少的正斜杠,ruby-on-rails,ruby,ruby-on-rails-4,haml,Ruby On Rails,Ruby,Ruby On Rails 4,Haml,我正在学习在rails 4中使用haml 我将这一行添加到我的“demo/index.html.haml”文件中: = link_to 'Hello with parameters',:controller => 'demo', :action => 'hello', :id=> 21, :page => 5 结果html输出缺少字符串hello和21之间的斜杠,如下所示: <a href="/demo/hello21?page=5">

我正在学习在rails 4中使用haml

我将这一行添加到我的“demo/index.html.haml”文件中:

= link_to 'Hello with parameters',:controller => 'demo', :action => 'hello', :id=> 21, :page => 5 
结果html输出缺少字符串hello和21之间的斜杠,如下所示:

<a href="/demo/hello21?page=5">Hello with parameters</a>
请告诉我是否可以提供更多信息来帮助解决此问题

我正在跑步:

  • 视窗7
  • ruby 2.1.5p273(2014-11-13修订版48405)[i386-mingw32]
  • 轨道4.2.2
  • haml(4.0.7)
  • haml钢轨(0.9.0)
  • html2haml(2.0.0)
先谢谢你

编辑 有人问我的路线。rb:

Rails.application.routes.draw do
  root 'demo#index'
  # Default Route
  match ':controller(/:action(:id(.:format)))', :via => :get
end
当我运行rake路线时,我得到:

$ rake routes
DL is deprecated, please use Fiddle
Prefix Verb URI Pattern                           Controller#Action
  root GET  /                                     demo#index
       GET  /:controller(/:action(:id(.:format))) :controller#:action

您的路线中已缺少斜线。在
:action
之后添加它,如下所示:


match':controller(/:action/(:id(:format)),:via=>:get

可能是您的路线中的错误?您是如何定义路由的?另一个指针:Rails生成路径帮助器方法。在您的情况下,我希望
hello\u demo\u path(21)
可用
rake路由
将列出它们(没有路径后缀)。@Raffael我在问题中添加了我的route.rb文件。另外,请不要在生产中使用此通用匹配模式。它会将所有公共控制器方法公开为可能带来安全风险的操作。不过,只要稍作修改就可以了。此外,您可以将其缩写为
get':controller(/:action/(:id(:format))”
感谢您的帮助和建议。我会使用它。
$ rake routes
DL is deprecated, please use Fiddle
Prefix Verb URI Pattern                           Controller#Action
  root GET  /                                     demo#index
       GET  /:controller(/:action(:id(.:format))) :controller#:action