Можно ли ограничить метод в Ruby on Rails только методом POST? - PullRequest
4 голосов
/ 15 июля 2010

Например:

class UsersController < ApplicationController 

 def doSomething

 end

 def doSomethingAgain

 end

end

Могу ли я ограничить передачу пользователем метода get только для doSomething, но doSomethingAgain - это только принять метод post, могу ли я сделать это?

Ответы [ 4 ]

5 голосов
/ 15 июля 2010
class UsersController < ApplicationController 
  verify :method => :post, :only => :doSomethingAgain

  def doSomething
  end

  def doSomethingAgain
  end

end
2 голосов
/ 15 июля 2010

Вы можете указать в routes.rb

map.resources :users, :collection=>{
  :doSomething= > :get,
  :doSomethingAgain => :post }

Вы можете указать более одного метода

map.resources :users, :collection=>{
  :doSomething= > [:get, :post],
  :doSomethingAgain => [:post, :put] }
0 голосов
/ 15 июля 2010

Думаю, вам лучше всего использовать verify, как предлагает Драко.Но вы также можете просто взломать его так:

 def doSomethingAgain
   unless request.post?
     redirect_to :action => 'doSomething' and return
   end

   # ...more code
 end
0 голосов
/ 15 июля 2010

Вот пример

resources :products do
  resource :category

  member do
    post :short
  end

  collection do
    get :long
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...