Я бы закодировал это как
def current_account
@account ||= current_subdomain.blank? ? nil : Account.find_by_host(current_subdomain)
end
Что касается исключений, динамические методы find_by возвращают nil
вместо генерации исключения. Если вы хотите исключение, используйте find
с :conditions
:
def current_account
@account ||= current_subdomain.blank? ? nil : Account.find(:first, :conditions => {:host => current_subdomain})
end