<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>everett (n-IQ e.U. (Austria))</title>
    <link>https://ruby-china.org/everett</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>如何在 rspec 中测试定时任务</title>
      <description>&lt;p&gt;在项目中，我将 model 的一些行为剥离到了 clockwork 定时任务中。请问在这种情况如何在 rspec 测试 jobs?&lt;/p&gt;</description>
      <author>everett</author>
      <pubDate>Sat, 20 Jul 2013 09:43:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/12632</link>
      <guid>https://ruby-china.org/topics/12632</guid>
    </item>
    <item>
      <title>求教，星型结构 through 关联问题</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Member&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;
 &lt;span class="n"&gt;has_one&lt;/span&gt; &lt;span class="ss"&gt;:account&lt;/span&gt;
 &lt;span class="n"&gt;has_one&lt;/span&gt; &lt;span class="ss"&gt;:branch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:through&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:account&lt;/span&gt;
 &lt;span class="n"&gt;has_one&lt;/span&gt; &lt;span class="ss"&gt;:company&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:through&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:account&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Account&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&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="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:Member&lt;/span&gt;
 &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:company&lt;/span&gt;
 &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:branch&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Branch&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&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="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:accounts&lt;/span&gt;
 &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:members&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:through&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:accounts&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Company&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&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="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:accounts&lt;/span&gt;
 &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:members&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:through&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:accounts&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我试图在多多关联中，在 through 表中同时保存两个对象关联。上述代码的查询功能没问题。
但是如果是这样做：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="vi"&gt;@member&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@company.members.create&lt;/span&gt;
&lt;span class="vi"&gt;@branch.members&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="vi"&gt;@member&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第二句就会重新创建一个新的 account 对象出来，Account 表看起来是这样的。
Account Table&lt;/p&gt;

&lt;p&gt;| id | member_id | company_id | branch_id |
| 1  |       1         |         1         |     null      |
| 2  |       1         |         null      |      1        |&lt;/p&gt;

&lt;p&gt;有意思的是，在这个时候如果，使用&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="vi"&gt;@branch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@member.branch&lt;/span&gt;
&lt;span class="ow"&gt;or&lt;/span&gt;
&lt;span class="vi"&gt;@company&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@member.company&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;依然可以得到正确结果。&lt;/p&gt;

&lt;p&gt;我 google 了半天，没有找到有用的资料。请问谁知道关于这个问题的解释？谢谢&lt;/p&gt;</description>
      <author>everett</author>
      <pubDate>Tue, 09 Apr 2013 19:56:42 +0800</pubDate>
      <link>https://ruby-china.org/topics/10048</link>
      <guid>https://ruby-china.org/topics/10048</guid>
    </item>
    <item>
      <title>求教 Mongoid 动态字段的验证问题</title>
      <description>&lt;p&gt;在一个项目中，我使用 mongoid 来保存&lt;strong&gt;在线询单&lt;/strong&gt;模型的的动态字段。
例如：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;enquiry&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:reason&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Here is a reason ..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题是，在这种情况下，我如何在模型中对这一类的动态字段使用 ActiveModel 的验证？ 
因为 mongoid 的动态字段虽然是通过元编程，但并不作为直接字段。&lt;/p&gt;

&lt;p&gt;此外，请问大家对这一类的动态表单的实现，有什么更好的实践或者建议？&lt;/p&gt;</description>
      <author>everett</author>
      <pubDate>Sat, 22 Sep 2012 09:58:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/5685</link>
      <guid>https://ruby-china.org/topics/5685</guid>
    </item>
  </channel>
</rss>
