Как получить список действий, доступных для контроллера?
Я сделал MyController.methods
и он перечислил ВСЕ... вещи, которые я даже не знал, что контроллеры могли сделать!
Как мне вернуть список действий, таких как create
, edit
, new
, destroy
, other_action
, other_non_protected_or_private_method
?
Использование Ruby on Rails 2.3.8
Ответы
Ответ 1
Не уверен, что этот будет работать в 2.38, но я решил, что это стоит того:
Чтобы процитировать соответствующую часть:
Чтобы получить все действия в контроллере, используйте action_methods
PostsController.action_methods
Это вернет набор, содержащий список всех методов в вашем контроллере, которые являются "действиями" (используя ту же логику, которую использует Rails, чтобы решить, является ли метод действительным действием для маршрутизации).
Ответ 2
Используйте #instance_methods (false) для получения только определенных действий контроллера:
CustomController.instance_methods(false)
=> ["index", "update", "show", "custom_action", "another_action"]
Надеюсь, это поможет!