vestal_versions увеличивает версию в консоли Rails, но не через пользовательский интерфейс
Я добавил versioned
к моей модели Post. Если я сделаю, например:
1.9.3-p448 :040 >p = Post.first
1.9.3-p448 :041 > p.version
=> 1
Затем я обновляю пост через пользовательский интерфейс нашего сайта. Смотрю логи сервера, изменения сохраняются.
Вернемся к консоли:
1.9.3-p448 :054 > p.version
=> 1
Без изменений. Но я делаю это:
1.9.3-p448 :059 > p.update_attributes(category: "Announcements")
(1.3ms) BEGIN
SQL (2.2ms) UPDATE "posts" ...
=> true
1.9.3-p448 :060 > p.version
=> 2
Почему версия обновляется в командной строке, а не при обновлении записи через пользовательский интерфейс?
1 ответ
Я думаю, что это связано с тем, что переменной ("p" выше) присваивается копия данных Почты, а не ссылка на саму Почту. Если я переназначу свою переменную тому же объекту, она, по-видимому, отражает обновления, сделанные через пользовательский интерфейс в номере версии. Например:
p = Post.find(1)
p.version
=>1
(Я тогда обновляю Пост 1 через UI)
p.version
=> 1
p = Post.find(1)
p.version
=> 2