<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hmilym (才才)</title>
    <link>https://ruby-china.org/hmilym</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>奇怪的 Rails 问题</title>
      <description>&lt;p&gt;为什么一样的查询，不一样的查询字符而已。结果却一个报错，一个正常，有谁遇到过类似问题吗？
ruby version: 2.1.5
rails version: 3.2.18&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Contract&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="c1"&gt;#table in DB1&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:partner_relationship&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="n"&gt;business_unit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;  &lt;span class="ss"&gt;:class_name&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"Relationship"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                          &lt;span class="ss"&gt;:foreign_key&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:partner_business_entity_id&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;Relationship&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="c1"&gt;# table in DB2&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;



&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;103&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;pry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Contract&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"contract.name like 'ww.'"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:partner_relationship&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="no"&gt;SQL&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="no"&gt;SELECT&lt;/span&gt; &lt;span class="sb"&gt;`contract`&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r0, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;network_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r1, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r2, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;global_name&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r3, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r4, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r5, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;partner_business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r6, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;contract_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r7, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r8, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r9, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;billing_recurrence_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r10, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;billing_start_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r11, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;effective_start_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r12, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;effective_end_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r13, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;original_reference_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r14, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;created_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r15, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;updated_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r16, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;deleted_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r17, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;old_partner_business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r18, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;start_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r19, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;end_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r20, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r0, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r1, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;network_from_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r2, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;network_from_contact_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r3, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;to_entity_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r4, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;to_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r5, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;to_contact_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r6, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;relationship_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r7, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;third_party_adserver_redirect_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r8, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;third_party_adserver_conversion_template&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r9, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;video_revenue_share&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r10, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;video_revenue_flat_fee&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r11, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;site_revenue_share&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r12, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;site_revenue_flat_fee&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r13, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;financial_term_notes&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r14, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;default_bidded_ecpm&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r15, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;active&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r16, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;internal_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r17, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;updated_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r18, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;created_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r19, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;distributor_cap_volume&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r20, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;distributor_cap_period&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r21, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;active_time&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r22, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;role_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r23, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;deleted_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r24 FROM `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;` LEFT OUTER JOIN `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;` ON `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;` = `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;partner_business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` WHERE `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;deleted_at&lt;/span&gt;&lt;span class="sb"&gt;` IS NULL AND (contract.name like 'ww.')
Mysql2::Error: Table 'fwrpm_oltp.relationship' doesn't exist: SELECT `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r0, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;network_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r1, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r2, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;global_name&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r3, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r4, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r5, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;partner_business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r6, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;contract_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r7, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r8, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r9, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;billing_recurrence_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r10, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;billing_start_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r11, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;effective_start_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r12, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;effective_end_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r13, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;original_reference_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r14, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;created_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r15, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;updated_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r16, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;deleted_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r17, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;old_partner_business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r18, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;start_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r19, `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;end_date&lt;/span&gt;&lt;span class="sb"&gt;` AS t0_r20, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r0, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r1, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;network_from_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r2, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;network_from_contact_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r3, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;to_entity_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r4, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;to_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r5, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;to_contact_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r6, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;relationship_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r7, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;third_party_adserver_redirect_type&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r8, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;third_party_adserver_conversion_template&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r9, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;video_revenue_share&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r10, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;video_revenue_flat_fee&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r11, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;site_revenue_share&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r12, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;site_revenue_flat_fee&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r13, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;financial_term_notes&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r14, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;default_bidded_ecpm&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r15, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;active&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r16, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;internal_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r17, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;updated_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r18, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;created_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r19, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;distributor_cap_volume&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r20, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;distributor_cap_period&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r21, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;active_time&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r22, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;role_id&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r23, `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;deleted_at&lt;/span&gt;&lt;span class="sb"&gt;` AS t1_r24 FROM `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;` LEFT OUTER JOIN `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;` ON `&lt;/span&gt;&lt;span class="n"&gt;relationship&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;` = `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;partner_business_entity_id&lt;/span&gt;&lt;span class="sb"&gt;` WHERE `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;deleted_at&lt;/span&gt;&lt;span class="sb"&gt;` IS NULL AND (contract.name like 'ww.')
=&amp;gt; #&amp;lt;%&amp;lt;f66e6697Class:%&amp;lt;f66e6697ActiveRecord::Relation:0x007ff9e7d60888&amp;gt;&amp;gt;:0x3ffcf3eb0444&amp;gt;

[104] pry(main)&amp;gt; Contract.where("contract.name like 'w.'").includes(:partner_relationship)
  Contract Load (0.4ms)  SELECT `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.* FROM `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;` WHERE `&lt;/span&gt;&lt;span class="n"&gt;contract&lt;/span&gt;&lt;span class="sb"&gt;`.`&lt;/span&gt;&lt;span class="n"&gt;deleted_at&lt;/span&gt;&lt;span class="sb"&gt;` IS NULL AND (contract.name like 'w.')
=&amp;gt; []
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 21 Apr 2016 18:48:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/29812</link>
      <guid>https://ruby-china.org/topics/29812</guid>
    </item>
    <item>
      <title>如此牛逼的注意事项， 还是腾讯的</title>
      <description>&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/6f15a08958703ed96f359ea1635cb419.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 15 Oct 2015 22:43:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/27692</link>
      <guid>https://ruby-china.org/topics/27692</guid>
    </item>
    <item>
      <title>Rails 默认没有防止表单重复提交功能？</title>
      <description>&lt;p&gt;偶然发现，好像 Rails 默认没有防止表单重复提交的功能。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;rails new repeat_test&lt;/li&gt;
&lt;li&gt;rails g scaffold user name:string age:integer&lt;/li&gt;
&lt;li&gt;add sleep 5 in create  user action.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# POST /users&lt;/span&gt;
&lt;span class="c1"&gt;# POST /users.json&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create&lt;/span&gt;
  &lt;span class="nb"&gt;sleep&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
  &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&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;:user&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

  &lt;span class="n"&gt;respond_to&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@user.save&lt;/span&gt;
      &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;notice: &lt;/span&gt;&lt;span class="s1"&gt;'User was successfully created.'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;json: &lt;/span&gt;&lt;span class="vi"&gt;@user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;status: :created&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;location: &lt;/span&gt;&lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;action: &lt;/span&gt;&lt;span class="s2"&gt;"new"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;json: &lt;/span&gt;&lt;span class="vi"&gt;@user.errors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;status: :unprocessable_entity&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;end&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;ol&gt;
&lt;li&gt;连续多次重复点击 create user 按钮&lt;/li&gt;
&lt;li&gt;发现新建了很多的相同的 user&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;讲过查找文档 guide，form 中只有 authenticity_token 用来防止 CSRF 攻击，也不是防止表单重复提交。请问 Rails 中没有类似于 java  structs 这种功能吗？&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 14 May 2015 09:48:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/25571</link>
      <guid>https://ruby-china.org/topics/25571</guid>
    </item>
    <item>
      <title>outlook 等邮件客户端的邮件相似邮件自动分组功能是如何实现的？</title>
      <description>&lt;p&gt;如题&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Tue, 10 Feb 2015 19:11:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/24207</link>
      <guid>https://ruby-china.org/topics/24207</guid>
    </item>
    <item>
      <title>有没有类似于 java 体系图的 Ruby 体系图？</title>
      <description>&lt;p&gt;看大 java 官方网站一张 java 体系图，如下：
&lt;img src="https://l.ruby-china.com/photo/2015/2db3126c70cdf060c0ca3c09832450d2.jpg" title="" alt=""&gt;
不知道 ruby 有没有类似的体系图，有谁见过吗？对理解 ruby 的层次结构应该有很大帮助&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Sun, 08 Feb 2015 11:31:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/24163</link>
      <guid>https://ruby-china.org/topics/24163</guid>
    </item>
    <item>
      <title>rails 源码解析之 log notification/subscribe</title>
      <description>&lt;p&gt;直接发链接了，就不 copy 了。
&lt;a href="http://blog.csdn.net/codelifeofme/article/details/41925195" rel="nofollow" target="_blank"&gt;http://blog.csdn.net/codelifeofme/article/details/41925195&lt;/a&gt;&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Sun, 14 Dec 2014 15:43:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/23187</link>
      <guid>https://ruby-china.org/topics/23187</guid>
    </item>
    <item>
      <title>数据库 copy 功能</title>
      <description>&lt;p&gt;众所周知，在复杂应用中，DB table 关联比较复杂，有没有相关的 gem 能够做到：根据一定规则，把主表以及相关表 copy 一份到 DB 中，使得用户无需重复填写复杂的表单。 ？？？？&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Tue, 25 Nov 2014 19:42:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/22866</link>
      <guid>https://ruby-china.org/topics/22866</guid>
    </item>
    <item>
      <title>ActiveRecord 缓存问题</title>
      <description>&lt;p&gt;在 activerecord 世界中。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;
  &lt;span class="n"&gt;has_one&lt;/span&gt; &lt;span class="ss"&gt;:b&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;B&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:a&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="no"&gt;A&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;xxxx&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# xxxx 是指A类的某一个id&lt;/span&gt;
&lt;span class="nb"&gt;p&lt;/span&gt;  &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;     &lt;span class="c1"&gt;#结果一&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;B&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;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update_attributes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:something_key&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:something_value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;   &lt;span class="c1"&gt;#结果二&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;两个结果一样，预期应该不一样才对，why? how? a.reload ?&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Tue, 25 Nov 2014 19:12:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/22865</link>
      <guid>https://ruby-china.org/topics/22865</guid>
    </item>
    <item>
      <title>有没有开源的数据库记录变更的 gem</title>
      <description>&lt;p&gt;如题，有没有开源的数据库记录变更记录的 gem，用来记录每一次操作对 DB 内容的变更，旧值是什么，变更后的新值是什么。&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Mon, 24 Nov 2014 23:25:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/22839</link>
      <guid>https://ruby-china.org/topics/22839</guid>
    </item>
    <item>
      <title>请问一种奇怪的写法是怎么回事</title>
      <description>&lt;p&gt;&amp;lt;% set_view [:summary] do %&amp;gt;
  &lt;/p&gt;
    {if defined('selected_codes')}
      {for code in selected_codes}
        {var rid = code.rid}
            ....
          {if !schedules || schedules.length==0}
            ....
          {/if}
          {for schedule in schedules}
           ...
          {/for}
          {if code.code_id &amp;gt; 0}
            ...
          {else}
            ${code.label}
          {/if}
        
      {/for}
    {/if}
  
&amp;lt;%end%&amp;gt;

&lt;p&gt;此段代码在一个 rhtml 文件中，请问这是什么东东，咋么用？谢谢&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Wed, 12 Nov 2014 19:30:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/22629</link>
      <guid>https://ruby-china.org/topics/22629</guid>
    </item>
    <item>
      <title>请教一个很棘手的问题</title>
      <description>&lt;p&gt;遇到一个很奇怪的问题，生产环境报 uninitialized constant 错误，很明显常量没有定义，但是检查代码后发现常量的确存在，且 rails c 调用这个常量也没有问题，哪位高手能够帮忙看看可能的原因是什么？这是一个 rails 和 sinatra 结合在一块的项目。&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Tue, 26 Aug 2014 18:53:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/21236</link>
      <guid>https://ruby-china.org/topics/21236</guid>
    </item>
    <item>
      <title>ruby china 咋好多天都出不来一两个好帖子，要没落的节奏啊</title>
      <description>&lt;p&gt;ruby china 咋好多天都出不来一两个好帖子，要没落的节奏啊，不忍心&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Tue, 19 Aug 2014 20:32:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/21123</link>
      <guid>https://ruby-china.org/topics/21123</guid>
    </item>
    <item>
      <title>关于 actionmailer 问题</title>
      <description>&lt;p&gt;我现在有一个需求
背景：
  提醒邮件，每天发送邮件量很大，且收件人人数有限。&lt;/p&gt;

&lt;p&gt;目标：
  降低每天邮件发送数量。&lt;/p&gt;

&lt;p&gt;做法：
  对每一个时间周期内的所有邮件按照收件人合并后发送。&lt;/p&gt;

&lt;p&gt;问题：
  怎么才能 拦截到 actionmailer 的 deliver 方法，用自己写的拦截方法代替？&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Mon, 28 Jul 2014 18:23:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/20719</link>
      <guid>https://ruby-china.org/topics/20719</guid>
    </item>
    <item>
      <title>ruby script 打印一半就不再处理了， 谁见过这种问题</title>
      <description>&lt;p&gt;我的一个脚本为 s.rb
shell 中执行：ruby s.rb &amp;gt;result.sql&lt;/p&gt;

&lt;p&gt;tail -f result.sql 看到最后一行打印了一半没有后半截了。这是什么问题？求教&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Tue, 22 Jul 2014 11:11:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/20619</link>
      <guid>https://ruby-china.org/topics/20619</guid>
    </item>
    <item>
      <title>进程间同步如何做？</title>
      <description>&lt;p&gt;需求是这样子的，很多的文件夹，如果当前有一个进程正在读写里面的文件（这些文件夹是挂载到 NFS 文件系统上的，文件锁机制无效），则其它进程不能够再读写里面的文件。这种需求用 ruby 应该怎么个思路。&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 17 Jul 2014 20:06:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/20553</link>
      <guid>https://ruby-china.org/topics/20553</guid>
    </item>
    <item>
      <title>180 行 ruby 代码搞定游戏 2048</title>
      <description>&lt;p&gt;最今在玩 2048 这款小游戏，游戏逻辑简单，非常适合我这种对于游戏新入行的人来实现逻辑。于是选择了最拿手的 ruby 语言来实现这款小游戏的主要逻辑。还是挺简单的，加起来 4 小时左右搞定。
blog 见：&lt;a href="http://blog.csdn.net/codelifeofme/article/details/37406173" rel="nofollow" target="_blank"&gt;http://blog.csdn.net/codelifeofme/article/details/37406173&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;如有错误，还望斧正。&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Mon, 07 Jul 2014 11:35:46 +0800</pubDate>
      <link>https://ruby-china.org/topics/20350</link>
      <guid>https://ruby-china.org/topics/20350</guid>
    </item>
    <item>
      <title>有来自 freewheel 的朋友吗，这个公司怎么样？</title>
      <description>&lt;p&gt;有来自 freewheel 的朋友吗，这个公司怎么样？&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 17 Apr 2014 18:36:18 +0800</pubDate>
      <link>https://ruby-china.org/topics/18671</link>
      <guid>https://ruby-china.org/topics/18671</guid>
    </item>
    <item>
      <title>delayed_job 奇怪问题</title>
      <description>&lt;p&gt;使用 delayed_job 执行的函数结果和不适用 delayed_job 结果不一致，请问有可能的原因是什么啊？&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 06 Mar 2014 20:56:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/17703</link>
      <guid>https://ruby-china.org/topics/17703</guid>
    </item>
    <item>
      <title>amqp gem 问题</title>
      <description>&lt;p&gt;按照&lt;a href="https://github.com/markiz/rubyonrails23_passenger_amqp_gem_examplerabbitmq%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%BF%E7%94%A8passenger%EF%BC%8C" rel="nofollow" target="_blank"&gt;https://github.com/markiz/rubyonrails23_passenger_amqp_gem_examplerabbitmq发送消息的功能，服务器使用passenger，&lt;/a&gt;的例子写的向 passenger 启动后可以正常发送消息，不过启动一段时间后，再发送消息就发送不出去了，也不报错。有人遇到类似问题吗？&lt;/p&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 13 Feb 2014 15:29:27 +0800</pubDate>
      <link>https://ruby-china.org/topics/17229</link>
      <guid>https://ruby-china.org/topics/17229</guid>
    </item>
    <item>
      <title>rubykoans  题目中错误的题目，供大家参考。</title>
      <description>&lt;p&gt;话所 rubykoans 真是不错的锻炼 ruby 基础的习题集，下面是我在做 koans 的过程中出现的问题，请问这是什么原理？&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;hash&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Hash&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;([])&lt;/span&gt;
&lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:one&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;"uno"&lt;/span&gt;
&lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:two&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;"dos"&lt;/span&gt;
&lt;span class="n"&gt;assert_equal&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"uno"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"dos"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:one&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
&lt;span class="n"&gt;assert_equal&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"uno"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"dos"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:two&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
&lt;span class="n"&gt;assert_equal&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"uno"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"dos"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:three&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>hmilym</author>
      <pubDate>Thu, 21 Nov 2013 22:27:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/15716</link>
      <guid>https://ruby-china.org/topics/15716</guid>
    </item>
  </channel>
</rss>
