Это нормально, что пользователь может содержать такие методы, как: CreateDocument (params), SendDocumentForApproval (docId), ApproveApprovalStepOfDocument (stepId)?
blockquote>В большинстве моделей доменов метод принадлежит к сущности, которая управляет государством, которое собирается измениться.
Document document = User.SendDocumentForApproval(command.DocId); _documentRepository.Update(document);
Тот факт, что ваш пример обновляет хранилище документов, является большим намеком на то, что это документ, который изменяется, и поэтому мы обычно ожидаем увидеть SendDocumentForApproval в качестве метода в документе.
document.SendDocumentForApproval(command.UserId) _documentRepository.Update(document);
(Да, код не читается как письменный или разговорный английский.)
Когда создает новый документ ... шаблоны создания странные. Уди Дахан предполагает, что в вашей доменной модели всегда должна быть какая-то сущность, отвечающая за создание других сущностей, но я не уверен, что с результатом на самом деле легче работать в долгосрочной перспективе. [ 1111]
Как мы можем смоделировать бизнес-процесс утверждения
blockquote>Общий ответ: бизнес-процессы - это протоколы , то есть обычно их можно смоделировать как Государственный аппарат. Вот то состояние, в котором мы сейчас находимся, вот какая-то новая информация из внешнего мира, вычисление последствий.
(Часто модель данных ) для процесса будет просто выглядеть как история событий; работа модели предметной области состоит в том, чтобы затем взять новую информацию и вычислить правильные события для хранить в истории. Вам не нужно делать это таким образом, но есть интересные возможности, когда вы можете).
Можно использовать атрибут maxlength. Это является новым для тега в HTML5. Это должно работать в наше время.
Как и сказал Рахул , в HTML нет атрибута maxlength
для текстового поля
. Только текст
ввод
имеет это.
Вам нужно помнить, что функция RoR text_area
(и все функции генератора HTML RoR) принимают любой аргумент, который вы им дадите. Если они не распознают параметр, они просто конвертируют его в HTML.
<%=f.text_area :data, :hellothere => "hello to you too"%>
Будет выводить этот HTML:
<textarea name="data" hellothere="hello to you too"></textarea>
Я знаю, что это трудно запомнить, но Ruby on Rails не волшебство, он просто выполняет много всего для тебя. Хитрость заключается в том, чтобы знать, как это происходит, чтобы вы могли понять, почему они работают, и как исправить их, когда они не работают!
Может быть, это из-за опечатки?
": maxlenght => 40" в вашем сообщении написано с ошибкой.
РЕДАКТИРОВАТЬ:
Я не Не читаю внимательно ваш пост. Я думаю, что в HTML нет атрибута maxlength для textarea. Вам нужно будет обработать это на JavaScript. Дополнительная информация приведена в разделе « MaxLength on a Textarea ».