我有一个 rails 3 应用程序,当我单击指向我的条款页面的链接时,它会路由到一个完全不同的控制器,而不是路由应该使用的控制器。更奇怪的是,当我没有登录并且我正在使用设计时,该路线有效。
登录时单击链接时出现此错误。
No route matches {:action=>"edit", :controller=>"users", :id=>nil}
<%= link_to "Terms", terms_path %>
路线(按照它们在 routes.rb 中出现的顺序):
devise_for :users, :controllers => {:registrations => "registrations"}
resources :users do
member do
get :following, :followers
post :accept
end
end
match '/terms', to: 'static_pages#user_agreement'
静态页面控制器
def user_agreement
end
耙子路线
terms /terms(.:format) static_pages#user_agreement
这也发生在我以这种方式路由到 staticpages 控制器的所有其他操作上,但不会发生在路由到不同控制器的任何其他操作上。
更新:条款页面标题:
<%= link_to "Follow", users_path %>
<%= link_to current_user.name, current_user %>
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
页脚:
<%= link_to "Welcome", welcome_path %>
<%= link_to "Settings", edit_user_path(@user) %>
<%= link_to "Terms", terms_path %>
所有内容都是纯html。
提前致谢