【发布时间】:2011-03-04 15:53:40
【问题描述】:
我正在处理个人资料页面,所以配置是这样的:
路线.rb => match "user/:login(*path)" => 'users#profile', :as => :profile
耙路线
=> 配置文件 /user/:login(*path)(.:format) {:action=>"profile", :controller=>"users"}
在控制台上
> Rails.application.routes.recognize_path("/user/example/whatever")
=> {:action=>"profile", :login=>"example", :controller=>"users", :path=>"/whatever"}
我在 UsersControllers 中有一个配置文件操作。 但是当我使用
&lt%= link_to user.name, profile_path(user.login) %>
在视图中我得到了错误
没有路由匹配 {:login=>"example", :controller=>"users", :action=>"profile"}
我错过了什么? 谢谢
更新:
感谢史蒂夫的回答和关注!
经过大量时间尝试,一位同事发现了我所缺少的:问题仅在于一些登录也是电子邮件,使用“@”、“.”等。解决方案是添加 to_url 在 params[:login] in link_to:
&lt%= link_to 'name', profile_path(params[:login]<strong>.to_url</strong>) %>
再次感谢您的关注!
【问题讨论】:
标签: ruby-on-rails-3 routing routes