我正在根据Ruby on Rails Guide在我的Rails应用上设置安全性。
我的理解是用户控制器中的'edit'方法(我用来呈现我的用户设置视图)应该只提交GET请求,并且'update'方法正在提交POST请求。但是,当我想验证不同方法的请求类型时,如下所示:
#UsersController
verify :method => :post, :only => [:update], :redirect_to => {:action => :show}
该应用不会保存对用户设置所做的任何更改。如果我将验证更改为
verify :method => :post, :only => [:update, :edit], :redirect_to => {:action => :show}
我甚至无法渲染设置视图。
StackOverflow通常很擅长教育我不太了解的领域,有谁知道会发生什么?
答案 0 :(得分:1)
你很近,但稍微偏了一点。以下是七条RESTful路由,以及它们使用的方法:
如您所见,更新需要PUT。它正在创建使用POST。这应该解决它:
verify :method => :put, :only => [:update], :redirect_to => {:action => :show}