<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>tianzhen (tianzhen)</title>
    <link>https://ruby-china.org/tianzhen</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>请叫如何优雅的处理竞态条件？</title>
      <description>&lt;p&gt;请各位看看我这个简单的范例代码：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rails g scaffold accounts total:integer
rake db:migrate
rails c
&amp;gt; acc = Account.new
&amp;gt; acc_id = Account.first.id
&amp;gt; acc1 = Account.find(acc_id)
&amp;gt; acc2 = Account.find(acc_id)
&amp;gt; acc1 == acc2 # true
&amp;gt; acc1.object_id == acc2.object_id # false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Account model class 有个 add_total 的方法&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_total&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;new_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;
  &lt;span class="n"&gt;update_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:total&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;new_total&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;acc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_total&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;acc2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_total&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;期望 Account.first.total 结果为 20 但却是 10&lt;/p&gt;</description>
      <author>tianzhen</author>
      <pubDate>Sat, 30 Jan 2016 13:48:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/28912</link>
      <guid>https://ruby-china.org/topics/28912</guid>
    </item>
  </channel>
</rss>
