Какую роль конструкторы модели ActiveRecord имеют в направляющих (если таковые имеются)?

Я использую или локальный 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 главному серверу; работает отлично в моем ограниченном опыте.

16
задан Community 23 May 2017 в 11:58
поделиться

2 ответа

Я довольно часто делаю это для значений по умолчанию. Он работает хорошо и по-прежнему позволяет пользователю изменять его. Помните, что метод инициализации вызывается, когда вы говорите 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
22
ответ дан 30 November 2019 в 21:11
поделиться

Согласно этому блогу , активная запись не всегда использует новую, поэтому инициализация может не выполняться быть вызванным на свой объект.

2
ответ дан 30 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: