Я использую или локальный darcs repo, или просто объединяю изменения в постепенно. Со слиянием (opendiff открывает FileMerge, программа слияния, которая идет с XCode; замените своим любимым инструментом слияния):
cp file file.new
svn revert file
opendiff file.new file -merge file
объединяют связанные изменения, сохраняют слияние, выходят из программы
svn ci -m 'first hunk' file
mv file.new file
svn ci -m 'second hunk' file
слияния, если бы больше чем один несвязанный ломоть в файле, промойте и повторение (но почему Вы ожидали бы так долго перед фиксацией?!)
кроме того, если Вы знаете мерзавца, можно использовать мерзавец-svn , чтобы поддержать локального мерзавца repo и синхронизировать фиксации к svn главному серверу; работает отлично в моем ограниченном опыте.
Я довольно часто делаю это для значений по умолчанию. Он работает хорошо и по-прежнему позволяет пользователю изменять его. Помните, что метод инициализации вызывается, когда вы говорите MyObject.new
. Однако вы можете прочитать эту запись в блоге (хотя и немного устаревшую) об использовании initialize
.
Вам следует использовать after_initialize
вместо инициализировать
. Метод инициализации требуется ActiveRecord :: Base для подготовки многих удобных методов. Если в вашей модели определен метод after_initialize
, он вызывается как обратный вызов для методов new, create, find и любых других методов, которые генерируют экземпляры вашей модели.
В идеале вы хотели бы определить его так:
def after_initialize
@attribute ||= default_value
end
Также обратите внимание, что вы не можете использовать этот обратный вызов, как другие, вы должны определить метод с именем after_initialize (как указано выше), чтобы он работал. Вы не можете сделать следующее:
after_initialize :run_some_other_method
Согласно этому блогу , активная запись не всегда использует новую, поэтому инициализация может не выполняться быть вызванным на свой объект.