Если Вы пишете DLL, который инкапсулирует тонну сложной функциональности в простой общедоступный API, то “internal” используется на участниках класса, которые не должны быть представлены публично.
Скрывающаяся сложность (иначе инкапсуляция) является главным понятием качественной разработки программного обеспечения.
Вы можете вызвать метод exists?
в именованной области, который запросит базу данных, чтобы узнать, существует ли данная запись с этими условиями.
Foo.bar.exists?(f)
Однако это не будет работать, если вы изменили атрибуты на f
и не сохранили их в базе данных. Это связано с тем, что именованные условия области - это SQL, поэтому проверка должна выполняться там. Попытка преобразовать в Ruby , если
условия беспорядочная, особенно в более сложных сценариях.