1

我已添加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

为什么在命令行更新版本,但通过 UI 更新记录时没有?

4

1 回答 1

0

我认为这是因为变量(上面的“p”)被分配了 Post 数据的副本,而不是引用 Post 本身。如果我将变量重新分配给同一个对象,它似乎会在版本号中反映通过 UI 所做的更新。例如:

p = Post.find(1)
p.version
=>1

(然后我通过 UI 更新 Post 1)

p.version
=> 1
p = Post.find(1)
p.version
=> 2
于 2014-09-26T23:50:55.643 回答