Подтвердить что ты не робот

Как получить список действий, доступных для контроллера?

Я сделал MyController.methods и он перечислил ВСЕ... вещи, которые я даже не знал, что контроллеры могли сделать!

Как мне вернуть список действий, таких как create, edit, new, destroy, other_action, other_non_protected_or_private_method?

Использование Ruby on Rails 2.3.8

4b9b3361

Ответ 1

Не уверен, что этот будет работать в 2.38, но я решил, что это стоит того:

Чтобы процитировать соответствующую часть:

Чтобы получить все действия в контроллере, используйте action_methods

PostsController.action_methods

Это вернет набор, содержащий список всех методов в вашем контроллере, которые являются "действиями" (используя ту же логику, которую использует Rails, чтобы решить, является ли метод действительным действием для маршрутизации).

Ответ 2

Используйте #instance_methods (false) для получения только определенных действий контроллера:

CustomController.instance_methods(false)
=> ["index", "update", "show", "custom_action", "another_action"]

Надеюсь, это поможет!