Ruby on rails 如何修复链接到url中缺少的正斜杠
我正在学习在rails 4中使用haml 我将这一行添加到我的“demo/index.html.haml”文件中: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">
= 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)
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