Я использую Ruby on Rails 3 и пытаюсь понять поведение метода before_filter
в контроллере.
В моем контроллере у меня есть
class UsersController < ApplicationController
before_filter :authorize
def show
...
end
end
Если янапример, просмотрите страницу http://<my_web_site>/user/1
(которая загружает файл вида users/show.html.erb
, заполненный данными от пользователя с идентификатором 1), before_filter
также работает.То есть метод authorize
делает то, что должен.
Если я отображаю users/show.html.erb
файл представления в качестве шаблона для другого контроллера (пример: PostsController) таким образом
# This code is in the `post/show.html.erb` file
<%= render :template => "/users/show", :locals => { :user => @user } %>
before_filter
не работает .То есть швы метода authorize
не выполняются.
Почему ?!Есть причина для такого поведения, или я где-то ошибаюсь?
ОБНОВЛЕНИЕ (после комментария @brad)
Вырендеринг этого представления как частичный шаблон из контроллера пользователя?Если нет, то before_filter не будет применяться
Если это так, как говорит @brad в своем комментарии, , как я могу заставить before_filter
работать с рендерингом этого представления для другого контроллера, чем UsersController?