Я думаю, что он должен быть помещен в тот же фильтр:
private
def find_user
@user = User.find_by_id(params[:user_id])
redirect_to where_you_want_to_go_when_no_user_url unless @user #for example login page
end
Если вы хотите визуализировать действия вашего контроллера даже без @user и вам всегда нужны @some_objects (и вы не хотите, чтобы переменная была нулевой), у вас может быть другой before_filter:
def get_some_objects
@some_objects = @user.present? ? @user.objects.all : []
end
или объединение обоих параметров (перенаправить или установить переменную some_objects):
def set_variables
@user = User.find_by_id(params[:user_id])
if @user
@some_objects = @user.objects.all
else
redirect_to where_you_want_to_go_when_no_user_url
end
end
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: изменить 'find' на 'find_by_id', чтобы избежать ошибок, когда id равен нулю или пользователь для данного идентификатора не существует.