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

时间:2011-08-20 03:08:50

标签: ruby-on-rails

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

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

2 个答案:

答案 0 :(得分:7)

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

Rails 2:

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

Rails 3:

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

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

答案 1 :(得分:4)

您可以在routes.rb

中为路线添加约束
match "/doAction" => "controller#doAction", :via => :post

有关详情,请参阅http://guides.rubyonrails.org/routing.html