我有这条路线
profile GET /contacts/:id(.:format) {:controller=>"my_devise/contacts", :action=>"profile"}
这是我的controllers / application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :get_current_user
def get_current_user
@current_user = current_user
end
end
如果我在网址<%= link_to "Profile", profile_path(@current_user) %>
的视图/ layouts / application.html.erb文件http://localhost:3000/contacts/1
中有此链接,我没有错误,但如果我尝试点击网址{{1我收到以下错误
http://localhost:3000/contacts
如果我删除了我的application.html.erb文件中的链接并点击Routing Error
No route matches {:controller=>"my_devise/contacts", :action=>"profile"}
,则错误就会消失。
为什么该链接会导致此错误?
修改
完整路线档案
http://localhost:3000/contacts
答案 0 :(得分:1)
要回答你的实际问题,那是因为你没有路线(/contacts
- 注意没有身份证明)。您的路线是/contacts/:id(.:format)
- 格式是可选的,但ID不是。您还需要使id可选,或者创建另一条路径。
答案 1 :(得分:0)
路线就像这样
联系人GET /contacts(.:format){:action =&gt;&#34; list&#34;,:controller =&gt;&#34; my_devise / contacts&#34;}
这里我们还要提供格式。如果我们提供联系人,它将抛出路由错误。所以请输入格式。