如何在Rails中只允许POST请求?

问题描述:

如何防止用户使用GET请求在我的控制器中调用方法“doAction”?我只希望使用POST请求来调用它?如何在Rails中只允许POST请求?

我听说我需要使用“验证”,但我不确定在哪里放置该代码,或者我需要如何使用它。

您可以指定您的routes.rb中的任何操作都允许使用哪些方法。

轨道2:

map.connect '/posts/doAction', :controller => 'posts, 
           :action  => 'doAction', 
           :conditions => { :method => :post } 

导轨3:

match 'posts/doAction' => "posts#doAction', :via => :post 

post 'posts/doAction', :to => "posts#doAction' 

您可以在routes.rb中为路线添加约束条件。

match "/doAction" => "controller#doAction", :via => :post 

有关更多信息,请参阅http://guides.rubyonrails.org/routing.html