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
Другие вопросы по тегам