Затмение PDT с ПЕХЛЕВИ имеет версию Mac ( PDT, единое ).
я использовал его в течение приблизительно 3 месяцев, и это довольно твердо и имеет возможности отладки с xdebug ( практическое руководство отладки ) и отладчик зенда.
I think you're asking how to run a before filter only if a user is logged in. There is no built-in semantic for this, but it's easy enough to inline:
class SomeController < ApplicationController
before_filter :do_something
def do_something
if logged_in?
# the stuff you want to do
end
end
end
Если вы действительно не хотите, чтобы before_filter
выполнялся для кого-либо, кроме вошедших в систему пользователей, рассмотрите возможность использования #skip_before_filter
в вашем фильтре аутентификации. Например, если вы проверяете, вошли ли пользователи в ваш фильтр аутентификации, если аутентификация не удалась, просто вызовите skip_before_filter: filter_for_logged_in_users_only
.
Кроме того, вы можете просто проверить, вошел ли пользователь в систему перед выполнением фильтра только по членам. Например:
def filter_for_logged_in_users_only
return true unless current_user && logged_in?
#rest of the logic
end
Перед фильтрами принимает необязательный блок, который передается текущему экземпляру контроллера так что вы можете сделать что-то вроде этого:
before_filter :do_stuff, lambda { |controller| controller.logged_in? }
before_filter :only_when_user_is_logged_in, :only => :the_action
Или для нескольких
before_filter :only_when_user_is_logged_in, :only => [:the_action, :another_action]
С другой стороны, вы также можете указать параметр : except =>: this_action
Если вы используете спокойную аутентификацию, это просто before_filter: login_required
. Если вы используете свою собственную структуру аутентификации, вы можете создать метод в application.rb, который возвращает true, если пользователь вошел в систему, или перенаправляет на страницу входа в противном случае.