ОК, я думал о себе, когда работал с RC.
обычное RC-действие выглядит примерно так:
def show
load_object
before :show
response_for :show
rescue ActiveRecord::RecordNotFound
response_for :show_fails
end
Итак, предположим, что вы хотите прервать показ сразу после load_object, если некоторые условия не пройдены.
Лучший способ сделать это, о котором я мог подумать (кроме модификации RC :), это:
- используйте before_filter , чтобы проверить условие
- в before_filter используйте объект или collection помощников (в зависимости от действия). таким образом, load_object / load_collection в реализации действия RC будет использовать то же значение, которое кэшируется при использовании вами помощника, поэтому никаких дополнительных запросов не будет.