<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>snowhs (Snow Hellsing)</title>
    <link>https://ruby-china.org/snowhs</link>
    <description>just a stray cat</description>
    <language>en-us</language>
    <item>
      <title>请问，做 ruby china 的时候有没有比较 faye 和别的 alternate，比如 socket.io 呢？</title>
      <description>&lt;p&gt;如果有，能分享下对所有 option 的优劣的看法吗？&lt;/p&gt;</description>
      <author>snowhs</author>
      <pubDate>Mon, 22 Apr 2013 11:46:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/10398</link>
      <guid>https://ruby-china.org/topics/10398</guid>
    </item>
    <item>
      <title>上传文件时 controller 丢失 param</title>
      <description>&lt;p&gt;有一个 action，以一个随机文件反复上传做测试。
有的时候会成功，有的时候会发现 params 里只有 controller 和 action 两组 key-value，别的参数，包括传上来的文件，全都没了。
正常情况下 info 级别的 log 里会给出 params。而失败的请求，是没有 params 的 log 的，action 内 log 到的 params 则只有 controller 和 action。&lt;/p&gt;

&lt;p&gt;在浏览器的开发工具里观察了成功的请求和失败的请求的 request payload，没发现显著区别。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;尝试了各种类型、各种文件名的文件，都会发生这个情况。&lt;/li&gt;
&lt;li&gt;rails 跑在 mac 上和跑在 ubuntu 上，都会发生这个情况。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;如果有人遇到过类似的情况，希望能补充线索、提供经验。谢谢。&lt;/p&gt;</description>
      <author>snowhs</author>
      <pubDate>Fri, 08 Feb 2013 14:47:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/8649</link>
      <guid>https://ruby-china.org/topics/8649</guid>
    </item>
    <item>
      <title>标题讲不清呀我操...</title>
      <description>&lt;p&gt;设我们有&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# app/controllers/posts_controller.rb&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PostsController&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&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;这时候为了测试Post.create之后posts#index有相应更新，有两个方法。
一个是&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# spec/controllers/posts_controller_spec.rb&lt;/span&gt;
&lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="no"&gt;PostsController&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="ss"&gt;:index&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;before&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="no"&gt;Post&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt; &lt;span class="ss"&gt;content: &lt;/span&gt;&lt;span class="s1"&gt;'Lorem lipsm'&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="n"&gt;specify&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="ss"&gt;:index&lt;/span&gt;
      &lt;span class="n"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;respond&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt; &lt;span class="n"&gt;be_success&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;p&gt;另一个是&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# spec/controllers/posts_controller_spec.rb&lt;/span&gt;
&lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="no"&gt;PostsController&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="ss"&gt;:index&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;before&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;post&lt;/span&gt; &lt;span class="ss"&gt;:create&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;content: &lt;/span&gt;&lt;span class="s1"&gt;'Lorem lipsm'&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="n"&gt;specify&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="ss"&gt;:index&lt;/span&gt;
      &lt;span class="n"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;respond&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt; &lt;span class="n"&gt;be_success&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;p&gt;后者可以连带posts#create一起测了。
在各位看来，两者各有什么优劣呢？&lt;/p&gt;</description>
      <author>snowhs</author>
      <pubDate>Wed, 30 Jan 2013 16:28:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/8490</link>
      <guid>https://ruby-china.org/topics/8490</guid>
    </item>
    <item>
      <title>[rspec] controller spec 的一个 example 里前后两个 request, 后者使用了前者的 params</title>
      <description>&lt;p&gt;设我们有&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# app/controllers/posts_controller.rb&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PostsController&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="c1"&gt;# spec/controllers/posts_controller_spec.rb&lt;/span&gt;
&lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="no"&gt;PostsController&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="ss"&gt;:index&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;before&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;post&lt;/span&gt; &lt;span class="ss"&gt;:create&lt;/span&gt; &lt;span class="ss"&gt;content: &lt;/span&gt;&lt;span class="s1"&gt;'Lorem lipsm'&lt;/span&gt;
      &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="ss"&gt;:index&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="n"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;respond&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt; &lt;span class="n"&gt;be_success&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;若观察 log/test.rb, 会发现 GET posts#index的参数里有POST posts#create时的content, 原因是什么呢？&lt;/p&gt;</description>
      <author>snowhs</author>
      <pubDate>Wed, 30 Jan 2013 16:02:09 +0800</pubDate>
      <link>https://ruby-china.org/topics/8488</link>
      <guid>https://ruby-china.org/topics/8488</guid>
    </item>
    <item>
      <title>如何在 ActiveRecord 的关联链条中避免重复 touch</title>
      <description>&lt;p&gt;嗨，各位，请教一个问题。&lt;/p&gt;

&lt;p&gt;假设有：( &lt;code&gt;&amp;lt; ActiveRecord::Base&lt;/code&gt; 等等在这个例子里无关紧要的代码就省略了 )&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;Project&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;Member&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:project&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;touch: &lt;/span&gt;&lt;span class="kp"&gt;true&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;Todolist&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:project&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;touch: &lt;/span&gt;&lt;span class="kp"&gt;true&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;Todo&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:todolist&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;touch: &lt;/span&gt;&lt;span class="kp"&gt;true&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="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;touch: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;那么，当一个 Todo 实例保存时，关联的 Project 将会被 touch 两次。
有什么办法避免么？&lt;/p&gt;</description>
      <author>snowhs</author>
      <pubDate>Thu, 10 Jan 2013 16:13:06 +0800</pubDate>
      <link>https://ruby-china.org/topics/7945</link>
      <guid>https://ruby-china.org/topics/7945</guid>
    </item>
  </channel>
</rss>
