Может кто-нибудь объяснить фрагмент кода, приведенный ниже в ruby? - PullRequest
0 голосов
/ 17 мая 2010
class ApplicationController < ActionController::Base
  class InvalidParam < StandardError;end
end

В чем причина включения другого класса в контроллер приложения? Как будут вести себя другие контроллеры?

Ответы [ 3 ]

1 голос
/ 18 мая 2010

Добавление семантики - Частные исключения v Системные исключения

Нет структурных различий между InvalidParam и StandardError - держу пари, что разработчик размещает свою семантику на InvalidParam. Это непослушно, потому что это просто смущает читателя.

Код объявляет вложенный класс InvalidParam для обработки исключений. Разработчик хочет иметь возможность создавать и восстанавливать исключения с помощью InvalidParam, а не StandardError - скорее всего потому, что он хочет различать системные исключения и их собственные.

0 голосов
/ 17 мая 2010

Причина включения другого класса в контроллер приложения состоит в том, что класс будет виден только внутри контроллера (область видимости). Другие контроллеры не будут затронуты.

0 голосов
/ 17 мая 2010

Может ли это быть объявлением вложенного класса, который больше нигде не будет использоваться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...