В нашем проекте у нас была аналогичная вещь. Мы создали поля как модуль. Немного похоже на это:
module SpecialFields
extend ActiveSupport::Concern
included do
field :my_field, type: String
field :my_other_field, type: String
end
end
Затем в вашем классе, где вы хотите вставлять, просто выполните:
include SpecialFields
В вашем классе, который вы хотели бы сохранить отдельно, как не-внедренный документ, сделайте следующее:
class NotEmbeddedDoc
include Mongoid::Document
include SpecialFields
end
Это очень хорошо отразилось на нашем проекте для нескольких вещей. Однако это может быть неприемлемо в вашем случае, поскольку вы хотите внедрить многие. Это только действительно работает для встраивания в один случай, я думаю. Я разместил его здесь, если он помогает людям.
Общая идея « Запись 'filename' не обновлена. Невозможно объединить.
»:
У вас есть изменения в файлах в вашем рабочем каталоге, которые будут перезаписаны , удаляется или иным образом теряется, если проверка и переход на новую ветку должны продолжаться.
было сообщено , что это сообщение могло быть "ложным" во время (возможно, потому что " git pull
" не обновлял индекс перед попыткой слияния), но исправление было в Git1.6.1.
Однако он все еще может быть в mSysGit 1.6.1, так что вы видите ту же ошибку в более поздней версии mSysGit? (например, 1.6.3)
Это также могло бы произойти из-за использования --skip-worktree
или --assume-unchanged
, команды и мерзавец предотвращают Вас, чтобы сделать: checkout
, merge
, rebase
или pull
.
пропущенные файлы/каталог не могли бы работать, если мы делаем следующий подход:
git stash
git merge --abort
, & git rm --cached
это также не работает на skipped
, регистрируют эту команду, бросит: fatal: pathspec [file] did not match any files
вместо этого Проверка на решение для [1 115] файлы здесь
$: git update-index --really-refresh
<file>: needs update
Дополнительный, если Вы хотите удалить skipped
или неотслеженный dir/файлы на Вашем локальном
$: git reset --hard
, Если ни одна из вышеупомянутых команд не устраняет проблему, просто необходимо отменить файл от [1 117] дерево, например:
$: git update-index --no-skip-worktree [file]
, Если Вы skipped
каталог, просто пойдите сюда для детали, как пропустить/отменить рекурсивно, например:
find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && pwd && git ls-files -z ${pwd} | xargs -0 git update-index --skip-worktree" \;