<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>NeptuneG (goss.beta)</title>
    <link>https://ruby-china.org/NeptuneG</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>ActiveRecord 优化问题</title>
      <description>&lt;p&gt;&lt;code&gt;Tagging&lt;/code&gt; 有一个 [:tag_id, :taggable_id, :taggable_type] 的 unique 制约，下面的代码有什么办法可以优化一下么？&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;merge_taggings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;remained_tag_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;delete_tag_ids&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="no"&gt;Tagging&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="ss"&gt;tag_id: &lt;/span&gt;&lt;span class="n"&gt;delete_tag_ids&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;tagging&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="no"&gt;Tagging&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exists?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tagging&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;taggable_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tagging&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;taggable_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;tag_id: &lt;/span&gt;&lt;span class="n"&gt;remained_tag_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;tagging&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;delete&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;tagging&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;tag_id: &lt;/span&gt;&lt;span class="n"&gt;remained_tag_id&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;</description>
      <author>NeptuneG</author>
      <pubDate>Mon, 24 Aug 2020 17:57:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/40329</link>
      <guid>https://ruby-china.org/topics/40329</guid>
    </item>
    <item>
      <title>如何在 ActionDispatch::IntegrationTest 中跳过 verify_authenticity_token?</title>
      <description>&lt;p&gt;测试一个 controller 时&lt;code&gt;ActionDispatch::IntegrationTest&lt;/code&gt;中有以下的 case：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="s2"&gt;"should success when received a request for javascript response"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;ajax_sample_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;headers: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;"HTTP_ACCEPT"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"application/javascript"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;assert_response&lt;/span&gt; &lt;span class="ss"&gt;:success&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果直接跑会报 402，但如果在相应的 controller 里加一句&lt;code&gt;skip_before_action :verify_authenticity_token&lt;/code&gt;，测试就过了。&lt;/p&gt;

&lt;p&gt;那么有可能在&lt;code&gt;ActionDispatch::IntegrationTest&lt;/code&gt;中跳过&lt;code&gt;verify_authenticity_token&lt;/code&gt;么？&lt;/p&gt;</description>
      <author>NeptuneG</author>
      <pubDate>Mon, 16 Apr 2018 15:09:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/35461</link>
      <guid>https://ruby-china.org/topics/35461</guid>
    </item>
  </channel>
</rss>
