У меня есть другая перспектива ответить на это.
При работе на разных уровнях, например, в приложении MVC, контроллеру нужны службы для вызова бизнес-операций. В таких сценариях контейнер инжекции зависимостей может использоваться для инициализации служб, чтобы исключить исключение NullReferenceException. Это означает, что вам не нужно беспокоиться о проверке нулевого значения и просто вызвать службы с контроллера, как будто они всегда будут доступны (и инициализированы) как одиночный или прототип.
public class MyController
{
private ServiceA serviceA;
private ServiceB serviceB;
public MyController(ServiceA serviceA, ServiceB serviceB)
{
this.serviceA = serviceA;
this.serviceB = serviceB;
}
public void MyMethod()
{
// We don't need to check null because the dependency injection container
// injects it, provided you took care of bootstrapping it.
var someObject = serviceA.DoThis();
}
}
Rails 4.2 имеет встроенную поддержку типа столбца citext
.
Если вы используете Rails & lt; 4.2, вы можете попробовать использовать жемчужину activerecord-postgresql-citext .
Это позволяет писать миграции следующим образом:
def up
enable_extension("citext")
create_table :models, :force => true do |t|
t.citext :name
t.timestamps
end
end
Я почти уверен, что Rails имеет только ограниченный словарь типов данных. Вам, вероятно, придется использовать хороший старомодный SQL для работы с любыми другими типами.
Только для записи. Кажется, что у rails 4.2 есть встроенная поддержка этого.
Добавлена поддержка типа столбца citext в адаптере PostgreSQL.