问题描述
|
但是,当运行rake:routes时,它似乎在那里:
users GET /users(.:format) {:action=>\"index\",:controller=>\"users\"}
POST /users(.:format) {:action=>\"create\",:controller=>\"users\"}
new_user GET /users/new(.:format) {:action=>\"new\",:controller=>\"users\"}
edit_user GET /users/:id/edit(.:format) {:action=>\"edit\",:controller=>\"users\"}
user GET /users/:id(.:format) {:action=>\"show\",:controller=>\"users\"}
PUT /users/:id(.:format) {:action=>\"update\",:controller=>\"users\"}
DELETE /users/:id(.:format) {:action=>\"destroy\",:controller=>\"users\"}
sessions POST /sessions(.:format) {:action=>\"create\",:controller=>\"sessions\"}
new_session GET /sessions/new(.:format) {:action=>\"new\",:controller=>\"sessions\"}
session DELETE /sessions/:id(.:format) {:action=>\"destroy\",:controller=>\"sessions\"}
signup /signup(.:format) {:controller=>\"users\",:action=>\"new\"}
contact /contact(.:format) {:controller=>\"pages\",:action=>\"contact\"}
about /about(.:format) {:controller=>\"pages\",:action=>\"about\"}
help /help(.:format) {:controller=>\"pages\",:action=>\"help\"}
root /(.:format) {:controller=>\"pages\",:action=>\"home\"}
Here are the routes from routes.rb:
resources :users
resources :sessions,:only => [:new,:create,:destroy]
match \'/signup\',to: \'users#new\'
match \'/contact\',to: \'pages#contact\'
match \'/about\',to: \'pages#about\'
match \'/help\',to: \'pages#help\'
解决方法
您可能没有在路由中传递:id参数,这就是路由不匹配的原因,因为:id是必需的:
session DELETE /sessions/:id(.:format) {:action=>\"destroy\",:controller=>\"sessions\"}
注意::format参数的括号表示它是可选的。
,我也遇到了同样的错误,但是原因是我在视图页面中写的小错误
<%= form_for(:session,url:session_path) do |f| %>
我减去了“会话”中的最后一个“ \”。
,这看起来像是我在通过http://ruby.railstutorial.org/运行时遇到的错误,结果发现我在route.rb中遗漏了一些东西。资源路由的添加伴随以下两个附加路由:
match \'/signin\',:to => \'sessions#new\'
match \'/signout\',:to => \'sessions#destroy\'
很难看到,因为该组中的第一条路线已经存在,所以我刚刚(多次)对该组进行了掩饰。
,resources controller
将地图添加到方法
{:action=>\"method\",:controller=>\"controller\"}
在您的情况下,铁轨似乎明确要求地图为
{:controller=>“controller”,:action=>“method”}
:controller
在:action
之前
这也回答了Noach的问题,为什么ѭ9必须存在,如果您耙:routes,您会看到它已添加
{:controller=>“sessions”,:action=>“destroy”}
{:action=>“destroy”,:controller=>“sessions”}
被resources sessions
添加