Как получить доступ к информации о маршруте (глагол HTTP, имя действия и т. Д.) Из контроллера в Rails? - PullRequest
4 голосов
/ 10 января 2012

Скажите, что я в контроллере, и я хочу получить список действий и HTTP-глаголов, которые он поддерживает, как бы я это сделал ?.Например,

controller.actions # { [ :show, :get ], [ :update, :put ], . . .  }

Или что-то эквивалентное.

Ответы [ 2 ]

4 голосов
/ 10 января 2012

Примерно так:

controller = "users"
controller_routes = []
Rails.application.routes.routes.each do |route|
  if route.to_s.include?(":controller=>\"#{controller}\"")  
    controller_routes << route
  end  
end
puts controller_routes

Вы поняли идею.

0 голосов
/ 10 января 2012

Чтобы перечислить http методы (GET, POST, PUT, DELETE), которые действительны для каждого действия контроллера, выполните:

rake routes

В нем будет указано, какие методы http настроены для всех контроллеров.

Вы можете изменить, какие методы http используются, отредактировав /config/routes.rb

RailsGuide содержит отличное объяснение здесь .

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