<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hexogen (wangpc)</title>
    <link>https://ruby-china.org/hexogen</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>[北京] 西单，金融方向，欢迎 Ruby 大牛 [15k~30k]</title>
      <description>&lt;p&gt;&lt;strong&gt;我们是谁&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;我们是一家金融公司，坐标北京西单，去年 5 月刚刚成立，到今年年初已经实现盈利，我们今年的目标在互联网和平台上，我们的主要内容是投资咨询，利用大数据统计，专业的行情分析，自上而下的理论基础来实现股票的推荐。现有 CMS 系统及移动互联网相关内容需要 ruby 小伙伴的加入。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;薪资待遇&lt;/strong&gt;
&lt;em&gt;15k ~ 30k&lt;/em&gt;
&lt;em&gt;年底分红&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;我们对您的期望&lt;/p&gt;

&lt;p&gt;熟练使用 Ruby 语言，2 年以上的 Ruby on Rails 程序开发经验&lt;/p&gt;

&lt;p&gt;Linux/Mysql/Nginx/Redis使用熟练并有较深的理解。&lt;/p&gt;

&lt;p&gt;熟练使用 git，具备优秀的团队合作能力&lt;/p&gt;

&lt;p&gt;扎实的编程功底与逻辑思维，能快速定位问题&lt;/p&gt;

&lt;p&gt;学习能力、定位问题与解决问题的能力&lt;/p&gt;

&lt;p&gt;精通以下一门前端技术可加分：react vue js &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;联系方式&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;工作地点：北京，西单 简历请发送至：yangq@jfinfo.com 如果附上 github,ruby-china 等账号更佳，方便我们了解您&lt;/p&gt;</description>
      <author>hexogen</author>
      <pubDate>Thu, 27 Apr 2017 11:28:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/32883</link>
      <guid>https://ruby-china.org/topics/32883</guid>
    </item>
    <item>
      <title>一个有点不明白的问题 (删除对象), 求指点</title>
      <description>&lt;p&gt;有一段代码是删除 Testtask 和 Subtask
这两个对象的关系是：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Testtask has_many subtasks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我是这样写的：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;transaction&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="no"&gt;Testtask&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;subtasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
         &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;destroy!&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
      &lt;span class="no"&gt;Testtask&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;destroy!&lt;/span&gt;  &lt;span class="c1"&gt;# ← here &lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题来了：执行到 &lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Testtask&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;destroy!&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# ← here &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;的时候报错，提示我按照这个 id 找不到这个 Testask ... 可是前面的 find 是成功了的...&lt;/p&gt;

&lt;p&gt;无奈，现在的处理方法是这样的：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;transaction&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;this_tt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Testtask&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
      &lt;span class="n"&gt;this_tt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;subtasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
        &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;destroy!&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
      &lt;span class="n"&gt;this_tt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;destroy!&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样就可以了，谁能告诉我这个是什么情况...好奇怪&lt;/p&gt;</description>
      <author>hexogen</author>
      <pubDate>Tue, 11 Oct 2016 20:29:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/31289</link>
      <guid>https://ruby-china.org/topics/31289</guid>
    </item>
    <item>
      <title>一个 Rails 对象缓存的小问题</title>
      <description>&lt;p&gt;系统信息：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rails: 5.0.0&lt;/li&gt;
&lt;li&gt;ruby: 2.3.0&lt;/li&gt;
&lt;li&gt;os: Mac OS X El Captian 10.11.6&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;代码如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;ProductsHelper&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_cs_case_count&lt;/span&gt; &lt;span class="n"&gt;cs_id&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;debug&lt;/span&gt; &lt;span class="s2"&gt;"**************** cs_id is: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;cs_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;CaseSet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cs_id&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;testcase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;debug&lt;/span&gt; &lt;span class="s2"&gt;"**************** case count is: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;代码的用处是在页面 erb 模板上调用，返回当前的 CaseSet 有多少的 case, 
Product 有多个 CaseSet, 每个 CaseSet 有很多 Textcase 在一个页面上会有多次调用。&lt;/p&gt;

&lt;p&gt;----------- 以上是业务说明-----分割-------------&lt;/p&gt;

&lt;p&gt;第四行，我开始写的是&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;CaseSet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cs_id&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;testcase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;发现 find_by 返回的对象被缓存了，每个页面上展示的 count 都是一样的，于是修改为：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;CaseSet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cs_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;force_reload: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;testcase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是无效...(这个修改的来源如下：&lt;a href="http://guides.ruby-china.org/association_basics.html" rel="nofollow" target="_blank"&gt;http://guides.ruby-china.org/association_basics.html&lt;/a&gt; 章节 4.1.1.1)
尝试做如下修改：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;CaseSet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cs_id&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;testcase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;好了...&lt;/p&gt;

&lt;p&gt;作为一个第一次写 rails 的苦手，哪位大神讲解下到底是因为什么原因呢？find 和 find_by 的缓存机制有什么不同么？&lt;/p&gt;</description>
      <author>hexogen</author>
      <pubDate>Tue, 30 Aug 2016 16:47:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/30938</link>
      <guid>https://ruby-china.org/topics/30938</guid>
    </item>
  </channel>
</rss>
