Обработка: только и: кроме в Rails - PullRequest
1 голос
/ 19 февраля 2011

Я пытаюсь написать метод, который принимает :only и :except в качестве хэша опций и выполняет некоторую работу на основе этих значений.Быстро мой код раздут.

Я не могу найти, как Rails обрабатывает эти опции, скажем, в контроллере перед фильтрами?

И only, и except могут быть символом или массивом, например.:only => :show или :only => [:show, :destroy]

Предложения?

1 Ответ

1 голос
/ 19 февраля 2011

Проверьте метод _normalize_callback_options в abstract_controller / callbacks.rb (это рельсы 3).

По сути, он создает строку, содержащую код для условий, которые вы хотите навязать. После этого вам просто нужно проверить этот код, например

str = "foo == :bar || foo == :baz"
if eval(str)
  # you'd better do somethin
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...