我刚刚看过Railscasts pro第250集,我不明白一件事。我说说这行:辅助方法中的参数
<%= link_to "Log out", session_path("whatever"), method: 'delete' %>
作者说,这样的事情:
session path helper method can expect an id to be passed through here
我的控制器动作:
def destroy
session[:user_id] = nil
redirect_to root_path, notice: "Looged out"
end
在我route.rb文件:
resources :sessions
为什么我不能通过<%= link_to "Log out", session_path(), method: 'delete' %>
?当我这样做时,我收到一个错误:
No route matches {:action=>"show", :controller=>"sessions"} missing required keys: [:id]
为什么需要id在这里?
毕竟我没有在任何地方使用这个参数。
谢谢。我在'route.rb'中使用'resources:sessions' – Jensky 2014-10-06 07:33:35
你可以添加一个新的路由或者只是传递任何东西(例如'whatever')到'session_path()'中以满足参数要求。 – 2014-10-06 07:38:18