<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>somejump (三金)</title>
    <link>https://ruby-china.org/somejump</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>ImageMagick 如何设置字体大小？</title>
      <description>&lt;p&gt;首先，我在 imageMagick 官网上查到了
&lt;code&gt;img.weight&lt;/code&gt; 这个选项。&lt;/p&gt;

&lt;p&gt;可是这个选项在 MiniMagick 里面不起效果，这是为什么？&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Sun, 26 Nov 2017 21:59:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/34629</link>
      <guid>https://ruby-china.org/topics/34629</guid>
    </item>
    <item>
      <title>一个诡异的 "NameError: uninitialized constant" Bug</title>
      <description>&lt;p&gt;我在服务器上用 RAILS_ENV=production rails console 结果出现如下报错：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Sport&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;last&lt;/span&gt;
&lt;span class="no"&gt;NameError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;uninitialized&lt;/span&gt; &lt;span class="n"&gt;constant&lt;/span&gt; &lt;span class="no"&gt;Sport&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;railties&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rails&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;commands&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;65&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`start'
    from /usr/local/rvm/gems/ruby-2.2.2/gems/railties-5.0.2/lib/rails/commands/console_helper.rb:9:in `&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="s1"&gt;'
    from /usr/local/rvm/gems/ruby-2.2.2/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:78:in `console'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&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="no"&gt;NameError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;uninitialized&lt;/span&gt; &lt;span class="n"&gt;constant&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也就是 rails console 下所有的 model 都没有加载出来，但是奇怪的是 puma 服务器居然跑起来了。而且并没有出错，使用 Sport 类的 controller 里的方法都正常工作。&lt;/p&gt;

&lt;p&gt;问题是。。。一天之前我进过 console，输入过这些简单的命令，那时根本没有出现这样的问题。。。&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;Sport&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
  &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:teamone&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;presence: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:wp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:lp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="n"&gt;maximum&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;30&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;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
  &lt;span class="n"&gt;has_secure_password&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上是 Model 代码，求大神解救。。。&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Sun, 02 Apr 2017 22:38:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/32686</link>
      <guid>https://ruby-china.org/topics/32686</guid>
    </item>
    <item>
      <title>现在国外服务器还有救么？</title>
      <description>&lt;p&gt;本人大学生，买了 linode 美国新泽西节点 vps。本来想着做几个小型 rails 网站给同学们玩玩，结果卡成翔。&lt;/p&gt;

&lt;p&gt;然而我外部的资源（什么 jq，turbolinks）几乎全都 cdn 了，ping 了一下试试看，尼玛 55% 的丢包率，这优化再好都没用啊。&lt;/p&gt;

&lt;p&gt;而且国外服务器也没办法申请国内付费 cdn 加速，因为没发备案。&lt;/p&gt;

&lt;p&gt;现在有没有用国外服务器的各位，请问这该怎么解决？是不是换一家情况会好点？&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Wed, 29 Mar 2017 11:25:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/32658</link>
      <guid>https://ruby-china.org/topics/32658</guid>
    </item>
    <item>
      <title>nginx+puma 多项目如何部署到二级域名</title>
      <description>&lt;p&gt;我对 nginx 了解不深，网上教程也比较乱，现在希望用一个服务器跑两个 rails 项目。&lt;/p&gt;

&lt;p&gt;我本来是想修改 upstream 的，但是发现那里已经使用统一的 socks 文件代理了，于是哪里还可以绑定域名呢？&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;求大神帮助&lt;/strong&gt;&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Sat, 18 Mar 2017 15:25:13 +0800</pubDate>
      <link>https://ruby-china.org/topics/32572</link>
      <guid>https://ruby-china.org/topics/32572</guid>
    </item>
    <item>
      <title>js.erb 内 js 没有被执行问题</title>
      <description>&lt;p&gt;最近学习 ajax，遇到一个很奇怪的问题，因为浏览器明明已经接收到返回的 js 了，但是 js.erb 内的 js 代码都没有被执行：&lt;/p&gt;

&lt;p&gt;事情是这样的：原本我的页面在 index 动作下，现在想往 search 动作发一个 post 请求，使 index 页面无需刷新就更新从 search 动作获得的数据&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;#rooms_controller&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;search&lt;/span&gt;
    &lt;span class="k"&gt;if&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;:key&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="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
          &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;js&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;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;erb&lt;/span&gt;
&lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;服务器端显示无异常：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Started POST &lt;span class="s2"&gt;"/rooms/search"&lt;/span&gt; &lt;span class="k"&gt;for &lt;/span&gt;127.0.0.1 at 2017-03-05 09:46:05 +0800
Processing by RoomsController#search as JS
  Parameters: &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"key"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"星期一 J3"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
  Room Load &lt;span class="o"&gt;(&lt;/span&gt;1.4ms&lt;span class="o"&gt;)&lt;/span&gt;  SELECT &lt;span class="s2"&gt;"rooms"&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt; FROM &lt;span class="s2"&gt;"rooms"&lt;/span&gt;
  Rendering rooms/search.js.erb
  Rendered rooms/_results.html.erb &lt;span class="o"&gt;(&lt;/span&gt;1.7ms&lt;span class="o"&gt;)&lt;/span&gt;
  Rendered rooms/_details.html.erb &lt;span class="o"&gt;(&lt;/span&gt;6.4ms&lt;span class="o"&gt;)&lt;/span&gt;
  Rendered rooms/search.js.erb &lt;span class="o"&gt;(&lt;/span&gt;12.0ms&lt;span class="o"&gt;)&lt;/span&gt;
Completed 200 OK &lt;span class="k"&gt;in &lt;/span&gt;31ms &lt;span class="o"&gt;(&lt;/span&gt;Views: 14.1ms | ActiveRecord: 1.4ms&lt;span class="o"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;浏览器返回值：&lt;/p&gt;

&lt;p&gt;&lt;code&gt;search POST    200 xhr jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:10255    9.5 KB    44 ms&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;仔细查看请求的 response 也的确返回了响应的 js&lt;code&gt;alert("hello")&lt;/code&gt;，为什么没有执行呢？同时我也发现写在 assets/javascripts/room.js 内的 jquery 选择器失效，不知道是不是有点关系....&lt;/p&gt;

&lt;p&gt;求大神指点&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Sun, 05 Mar 2017 10:00:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/32447</link>
      <guid>https://ruby-china.org/topics/32447</guid>
    </item>
    <item>
      <title>升级到 Rails 5 时 gem nio4r 无法安装问题</title>
      <description>&lt;p&gt;本小白在笔记本上写 ROR 程序时，这个 gem 成功安装了。现在在服务器上反而装不上了......
服务器原本是 ruby 2.0.0，后来因为 rails5 要求必须升到 2.2.2 于是就出现了下面这个 bug
下面是运行命令时的错误记录：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="vi"&gt;@hostname&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;times&lt;/span&gt;&lt;span class="c1"&gt;# gem install nio4r -v '1.2.1'&lt;/span&gt;
&lt;span class="no"&gt;Building&lt;/span&gt; &lt;span class="n"&gt;native&lt;/span&gt; &lt;span class="n"&gt;extensions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;  &lt;span class="no"&gt;This&lt;/span&gt; &lt;span class="n"&gt;could&lt;/span&gt; &lt;span class="n"&gt;take&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="no"&gt;ERROR&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="no"&gt;Error&lt;/span&gt; &lt;span class="n"&gt;installing&lt;/span&gt; &lt;span class="ss"&gt;nio4r:
    &lt;/span&gt;&lt;span class="no"&gt;ERROR&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Failed&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt; &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;native&lt;/span&gt; &lt;span class="n"&gt;extension&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

    &lt;span class="nf"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubies&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;/&lt;/span&gt;&lt;span class="n"&gt;siteconf20170206&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;7959&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="n"&gt;h81e9&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt; &lt;span class="n"&gt;extconf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;
&lt;span class="n"&gt;checking&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;unistd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;h&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="o"&gt;***&lt;/span&gt; &lt;span class="n"&gt;extconf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt; &lt;span class="n"&gt;failed&lt;/span&gt; &lt;span class="o"&gt;***&lt;/span&gt;
&lt;span class="no"&gt;Could&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;create&lt;/span&gt; &lt;span class="no"&gt;Makefile&lt;/span&gt; &lt;span class="n"&gt;due&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;some&lt;/span&gt; &lt;span class="n"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;probably&lt;/span&gt; &lt;span class="n"&gt;lack&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;necessary&lt;/span&gt;
&lt;span class="n"&gt;libraries&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt;&lt;span class="sr"&gt;/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/in&lt;/span&gt;&lt;span class="n"&gt;clude&lt;/span&gt;
    &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;with&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;
    &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;without&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;
    &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;with&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;prog&lt;/span&gt;
    &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;without&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;prog&lt;/span&gt;
    &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;srcdir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
    &lt;span class="nf"&gt;-&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;curdir&lt;/span&gt;
    &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubies&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;RUBY_BASE_NAME&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubies&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mkmf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;456&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb:587:in `&lt;/span&gt;&lt;span class="n"&gt;try_cpp&lt;/span&gt;&lt;span class="s1"&gt;'
    from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb:1060:in `block in have_header'&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubies&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mkmf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;911&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`block in checking_for'
    from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb:351:in `&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="n"&gt;levels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;postpone&lt;/span&gt;&lt;span class="s1"&gt;'
    from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb:321:in `open'&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubies&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mkmf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;351&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`block in postpone'
    from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb:321:in `&lt;/span&gt;&lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="s1"&gt;'
    from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb:347:in `postpone'&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubies&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mkmf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;910&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`checking_for'
    from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb:1059:in `&lt;/span&gt;&lt;span class="n"&gt;have_header&lt;/span&gt;&lt;span class="s1"&gt;'
    from extconf.rb:3:in `&amp;lt;main&amp;gt;'&lt;/span&gt;

&lt;span class="n"&gt;extconf&lt;/span&gt; &lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="no"&gt;Gem&lt;/span&gt; &lt;span class="n"&gt;files&lt;/span&gt; &lt;span class="n"&gt;will&lt;/span&gt; &lt;span class="n"&gt;remain&lt;/span&gt; &lt;span class="n"&gt;installed&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nio4r&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;inspection&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;span class="no"&gt;Results&lt;/span&gt; &lt;span class="n"&gt;logged&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rvm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;extensions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;linux&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nio4r&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gem_make&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;out&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中这一句话我觉得比较重要：
&lt;strong&gt;Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.&lt;/strong&gt;
以及我尝试顺藤摸瓜找到的详细错误信息（位置：/usr/local/rvm/gems/ruby-2.2.2/extensions/x86_64-linux/2.2.0/nio4r-1.2.1/mkmf.log）&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="s2"&gt;"gcc -o conftest -I/usr/local/rvm/rubies/ruby-2.2.2/include/ruby-2.2.0/x86_64-linux -I/usr/local/rvm/rubies/ruby-2.2.2/include/ruby-2.2.0/ruby/backward -I/usr/local/rvm/rubies/ruby-2.2.2/include/ruby-2.2.0 -I.     -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat  -fPIC conftest.c  -L. -L/usr/local/rvm/rubies/ruby-2.2.2/lib -Wl,-R/usr/local/rvm/rubies/ruby-2.2.2/lib -L. -fstack-protector -rdynamic -Wl,-export-dynamic     -Wl,-rpath,'/../lib' -Wl,-R'/../lib' -lruby  -lpthread -lgmp -ldl -lcrypt -lm   -lc"&lt;/span&gt;
&lt;span class="sr"&gt;/usr/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="ss"&gt;ld: &lt;/span&gt;&lt;span class="n"&gt;cannot&lt;/span&gt; &lt;span class="n"&gt;find&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lgmp&lt;/span&gt;
&lt;span class="ss"&gt;collect2: error: &lt;/span&gt;&lt;span class="n"&gt;ld&lt;/span&gt; &lt;span class="n"&gt;returned&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;
&lt;span class="n"&gt;checked&lt;/span&gt; &lt;span class="n"&gt;program&lt;/span&gt; &lt;span class="ss"&gt;was:
&lt;/span&gt;&lt;span class="sr"&gt;/* begin */&lt;/span&gt;
&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#include "ruby.h"&lt;/span&gt;
&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;int&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;int&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="sr"&gt;/* end */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我的想法是应该是缺了某些包，但是详细报错看不懂，也没有讲缺什么包，求大神解救～&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Mon, 06 Feb 2017 00:51:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/32240</link>
      <guid>https://ruby-china.org/topics/32240</guid>
    </item>
    <item>
      <title>[网站访问问题][已解决] 到底什么影响一个网站的访问速度呢？</title>
      <description>&lt;p&gt;RT
租着一台外国的服务器学习网络技术，但是发现 ROR 建起来的网站访问很慢。。。
就是第一次打开一个页面卡 1min 才打开，但是这明显超过正常人的忍耐极限了。
第二次打开同一个页面就快很多。
1.这是在哪个环节出现了问题呢？图片大小？css？还是 js？
2.如果无法判断，我可以通过什么实用工具进行判断呢？
请大家不要引用术语，我可能看不懂。。。&lt;/p&gt;
&lt;h3 id="[解决方法]"&gt;[解决方法]&lt;/h3&gt;
&lt;p&gt;若是使用 nginx 服务器的话，需要让 rails 放弃对静态资源的管理&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;serve_static_assets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样会解决很多 js/css 报错的问题&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Wed, 08 Jun 2016 18:53:04 +0800</pubDate>
      <link>https://ruby-china.org/topics/30239</link>
      <guid>https://ruby-china.org/topics/30239</guid>
    </item>
    <item>
      <title>Simditor 文字缩进错误问题</title>
      <description>&lt;p&gt;最近在修复文章系统，发现了一个诡异的现象：&lt;img src="https://l.ruby-china.com/photo/2015/47ba5bca6eef2b491c2cde31b7409608.png" title="" alt=""&gt;
更新时用 tab 进行的排版很正常，但是 show 页面中就不行了&lt;img src="https://l.ruby-china.com/photo/2015/173c1f62d1400ce0821502fb6dccc37b.png" title="" alt=""&gt;
以下是 show 和 update 的源码：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;#update&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;des_field&lt;/span&gt;
   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text_area&lt;/span&gt; &lt;span class="ss"&gt;:des&lt;/span&gt;
        &lt;span class="ss"&gt;coffee:
              &lt;/span&gt;&lt;span class="n"&gt;editor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="no"&gt;Simditor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="ss"&gt;textarea: &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'textarea'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="ss"&gt;tabIndent: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
                &lt;span class="ss"&gt;params: &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;
                &lt;span class="ss"&gt;toolbarFloat: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
                &lt;span class="ss"&gt;upload:
                  url: &lt;/span&gt;&lt;span class="s1"&gt;'/api/v1/upload/image'&lt;/span&gt;
                  &lt;span class="ss"&gt;connectionCount: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
                  &lt;span class="ss"&gt;leaveConfirm: &lt;/span&gt;&lt;span class="s1"&gt;'正在上传文件，如果离开上传会自动取消'&lt;/span&gt;
                &lt;span class="ss"&gt;pasteImage: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
                &lt;span class="ss"&gt;toolbar: &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'bold'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'italic'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'underline'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'|'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'ol'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'ul'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'blockquote'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'code'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'|'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'link'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="s1"&gt;'|'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'image'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'indent'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'outdent'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'|'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'hr'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'table'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
              &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#show&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;des_field&lt;/span&gt;
         &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="vi"&gt;@article.des&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;.des_field 这个 class 没有任何样式，且 display 是 block
这是 CSS 的问题么？可我用浏览器调试发现删了所有 CSS 它的缩进还是有问题
求帮助 QUQ&lt;/p&gt;
&lt;h2 id="解决方案"&gt;解决方案&lt;/h2&gt;
&lt;p&gt;我的 gem 老化了，所以需要到官方地址更新 JS 和 CSS：
&lt;a href="https://github.com/mycolorway/simditor/releases" rel="nofollow" target="_blank"&gt;https://github.com/mycolorway/simditor/releases&lt;/a&gt;
谢谢&lt;a href="/farthinker" class="user-mention" title="@farthinker"&gt;&lt;i&gt;@&lt;/i&gt;farthinker&lt;/a&gt;的帮助，simditor 做的很棒&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Sun, 28 Jun 2015 13:51:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/26217</link>
      <guid>https://ruby-china.org/topics/26217</guid>
    </item>
    <item>
      <title>[已解决][Gem RubyCas-Client] CAS 认证在生产模式下遇到的问题</title>
      <description>&lt;p&gt;Rubycas-client 是一个用来实现单点登陆的 gem
在 development 下需要在 application.rb 下加入如下几行&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'casclient'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'casclient/frameworks/rails/filter'&lt;/span&gt;

&lt;span class="no"&gt;CASClient&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Frameworks&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Filter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="ss"&gt;cas_base_url: &lt;/span&gt;&lt;span class="s2"&gt;"http://somesite.com/cas"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="ss"&gt;enable_single_sign_out: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样就可以调用 session[:cas_user] 来获取 CAS 登陆后的信息
在 development 下测试良好，一般来说会自动在/tmp/sessions 下生成一个 session
可是到了生产模式：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;I, &lt;span class="o"&gt;[&lt;/span&gt;2015-06-14T20:57:27.790760 &lt;span class="c"&gt;#18180]  INFO -- : Filter chain halted as CASClient::Frameworks::Rails::Filter rendered or redirected&lt;/span&gt;
I, &lt;span class="o"&gt;[&lt;/span&gt;2015-06-14T20:57:27.790914 &lt;span class="c"&gt;#18180]  INFO -- : Completed 302 Found in 3ms (ActiveRecord: 0.0ms)&lt;/span&gt;
I, &lt;span class="o"&gt;[&lt;/span&gt;2015-06-14T20:57:28.270761 &lt;span class="c"&gt;#18180]  INFO -- : Started GET "/verify?user_id=MQ%3D%3D&amp;amp;ticket=ST-1434286982rQdTPVk-f387GBrQPqs" for 123.112.102.233 at 2015-06-14 20:57:28 +0800&lt;/span&gt;
I, &lt;span class="o"&gt;[&lt;/span&gt;2015-06-14T20:57:28.273099 &lt;span class="c"&gt;#18180]  INFO -- : Processing by ProfileController#verify_identity as HTML&lt;/span&gt;
I, &lt;span class="o"&gt;[&lt;/span&gt;2015-06-14T20:57:28.273166 &lt;span class="c"&gt;#18180]  INFO -- :   Parameters: {"user_id"=&amp;gt;"MQ==", "ticket"=&amp;gt;"ST-1434286982rQdTPVk-f387GBrQPqs"}&lt;/span&gt;
I, &lt;span class="o"&gt;[&lt;/span&gt;2015-06-14T20:57:29.568797 &lt;span class="c"&gt;#18180]  INFO -- : Completed 500 Internal Server Error in 1295ms&lt;/span&gt;
F, &lt;span class="o"&gt;[&lt;/span&gt;2015-06-14T20:57:29.573320 &lt;span class="c"&gt;#18180] FATAL -- :&lt;/span&gt;
Errno::ENOENT &lt;span class="o"&gt;(&lt;/span&gt;No such file or directory - /home/mo1.0/tmp/sessions/cas_sess.ST-1434286982rQdTPVk-f387GBrQPqs&lt;span class="o"&gt;)&lt;/span&gt;:
  /usr/local/rvm/gems/ruby-2.0.0-p643/bundler/gems/rubycas-client-b6692b942f69/lib/casclient/tickets/storage.rb:101:in &lt;span class="sb"&gt;`&lt;/span&gt;initialize&lt;span class="s1"&gt;'
  /usr/local/rvm/gems/ruby-2.0.0-p643/bundler/gems/rubycas-client-b6692b942f69/lib/casclient/tickets/storage.rb:101:in `new'&lt;/span&gt;
  /usr/local/rvm/gems/ruby-2.0.0-p643/bundler/gems/rubycas-client-b6692b942f69/lib/casclient/tickets/storage.rb:101:in &lt;span class="sb"&gt;`&lt;/span&gt;store_service_session_lookup&lt;span class="s1"&gt;'
  /usr/local/rvm/gems/ruby-2.0.0-p643/bundler/gems/rubycas-client-b6692b942f69/lib/casclient/frameworks/rails/filter.rb:81:in `filter'&lt;/span&gt;
  /usr/local/rvm/gems/ruby-2.0.0-p643/bundler/gems/rubycas-client-b6692b942f69/lib/casclient/frameworks/rails/filter.rb:15:in &lt;span class="sb"&gt;`&lt;/span&gt;before&lt;span class="s1"&gt;'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就有了一些问题，而我自己试了试依然没能解决
以下是 production.rb 配置文件&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cache_classes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cache_store&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;:redis_store&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;:host&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"localhost"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:port&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;6379&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:db&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:namespace&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"mo_production"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;eager_load&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;consider_all_requests_local&lt;/span&gt;       &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;action_controller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;perform_caching&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;serve_static_assets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;debug&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;digest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'1.0'&lt;/span&gt;
   &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;action_dispatch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;x_sendfile_header&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'X-Accel-Redirect'&lt;/span&gt; &lt;span class="c1"&gt;# for nginx&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log_level&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;:info&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;precompile&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="sx"&gt;%w(mediaelementplayer.js mediaelementplayer.css home.js waterfall.js)&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;i18n&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fallbacks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;active_support&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deprecation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;:notify&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log_formatter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Logger&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Formatter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;active_record&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dump_schema_after_migration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="求帮助QUQ"&gt;求帮助 QUQ&lt;/h2&gt;
&lt;p&gt;解决方法：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; u+rwX,go+rX,go-w /tmp
&lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; u+rwX,go+rX,go-w /home/yourapp/tmp
&lt;span class="nb"&gt;mkdir&lt;/span&gt; /home/yourapp/tmp/sessions
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;生产模式下没有自动生成 sessions 文件夹，这可能是问题之一
还有读写权限问题，这是问题之二
感谢&lt;a href="/billy" class="user-mention" title="@billy"&gt;&lt;i&gt;@&lt;/i&gt;billy&lt;/a&gt;的热心帮助&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Sun, 14 Jun 2015 23:16:34 +0800</pubDate>
      <link>https://ruby-china.org/topics/26017</link>
      <guid>https://ruby-china.org/topics/26017</guid>
    </item>
    <item>
      <title>[已解决] Rails 生产模式下 CSS 编译错误问题</title>
      <description>&lt;p&gt;我是个 rails 新手，对于 Rails 服务器 CSS 的预编译不是很熟悉
首先在 application 里面写下 CSS&lt;/p&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="nt"&gt;require_self&lt;/span&gt;
&lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="nt"&gt;require&lt;/span&gt; &lt;span class="nt"&gt;home&lt;/span&gt;
&lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="nt"&gt;require&lt;/span&gt; &lt;span class="nt"&gt;font-awesome&lt;/span&gt;
&lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="nt"&gt;require&lt;/span&gt; &lt;span class="nt"&gt;simditor&lt;/span&gt;
&lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="nt"&gt;require&lt;/span&gt; &lt;span class="nt"&gt;semantic-new&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后访问服务器打开浏览器 console 就有这些错误信息：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Failed to load resource: the server responded with a status of 404 &lt;span class="o"&gt;(&lt;/span&gt;Not Found&lt;span class="o"&gt;)&lt;/span&gt;  http://XXXXX.com/assets/simditor-34400bcae1af61814cc649711017c00f.css?body&lt;span class="o"&gt;=&lt;/span&gt;1
Failed to load resource: the server responded with a status of 404 &lt;span class="o"&gt;(&lt;/span&gt;Not Found&lt;span class="o"&gt;)&lt;/span&gt; http://XXXXX.com/assets/font-awesome-5f75b3a88debb91572b2a6fc0436be29.css?body&lt;span class="o"&gt;=&lt;/span&gt;1  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;等等，这些加入的 CSS 全挂了，我实际看了看那些用到 CSS 的前端，它们也确实挂了&lt;/p&gt;
&lt;h2 id="所以这是怎么一回事呢？为什么development下什么事都没有呢？"&gt;所以这是怎么一回事呢？为什么 development 下什么事都没有呢？&lt;/h2&gt;
&lt;p&gt;需要预编译&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ RAILS_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;production bundle &lt;span class="nb"&gt;exec &lt;/span&gt;rake assets:precompile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更重要的是，修改静态文件之后，必须再次预编译才行，我建议还是每次跑服务器时 precompile 一下吧。&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Tue, 09 Jun 2015 00:58:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/25936</link>
      <guid>https://ruby-china.org/topics/25936</guid>
    </item>
    <item>
      <title>【已解决】qiniu_direct_upload 有关变量问题</title>
      <description>&lt;p&gt;我是个 ruby 新手，正在学习七牛云存储的一些 gem，这个 gem 十分好使，并且在给出的 demo 里面运行良好
就是这个：&lt;a href="https://github.com/huobazi/qiniu_direct_uploader" rel="nofollow" target="_blank"&gt;https://github.com/huobazi/qiniu_direct_uploader&lt;/a&gt;
以下是实现表单的代码：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;%= qiniu_uploader_form callback_url: qiniu_callback_path,
     bucket:        'mosite',
     id:            "photograph-uploader",
     key:           "items/&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="no"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;today&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'%Y/%m'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sx"&gt;/{timestamp}-{unique-id}-&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="no"&gt;SecureRandom&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hex&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sx"&gt;-{filename}",
     custom_fields: {iid:"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@item.id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sx"&gt;",bbb:2},
     progress_bar_id: 'progress-bar',
     callbackBody: "name=&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;iid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iid&lt;/span&gt;&lt;span class="p"&gt;)\&lt;/span&gt;
                     &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;bbb&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bbb&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;iwd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;12345&lt;/span&gt;&lt;span class="s2"&gt;",
     drop_paste_zone_id: 'dropzone' do %&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当我喜闻乐见的把 demo 中的表单搬到我的 project 里面的时候，我惊奇的发现{timestamp}、{filename}、{unique-id}等变量全挂了&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Started POST &lt;span class="s2"&gt;"/images/qiniu_callback"&lt;/span&gt; &lt;span class="k"&gt;for &lt;/span&gt;127.0.0.1 at 2015-05-25 22:11:14 +0800
Processing by ImagesController#qiniu_callback as &lt;span class="k"&gt;*&lt;/span&gt;/&lt;span class="k"&gt;*&lt;/span&gt;
  Parameters: &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"etag"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"FmNco5xtUQvPhZOdMiqVBFG8fiJM"&lt;/span&gt;, &lt;span class="s2"&gt;"fname"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"df2.jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"fsize"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"131663"&lt;/span&gt;, &lt;span class="s2"&gt;"mimeType"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"image/jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"imageInfo"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;{&lt;/span&gt;&lt;span class="s2"&gt;"format"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"width"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"853"&lt;/span&gt;, &lt;span class="s2"&gt;"height"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"640"&lt;/span&gt;, &lt;span class="s2"&gt;"colorModel"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"ycbcr"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="s2"&gt;"endUser"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;, &lt;span class="s2"&gt;"key"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"items/2015/05/{timestamp}-{unique-id}-3e545506ff0541cbd4d08f06e57a45ef-{filename}"&lt;/span&gt;, &lt;span class="s2"&gt;"custom_fields"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;{&lt;/span&gt;&lt;span class="s2"&gt;"iid"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"105"&lt;/span&gt;, &lt;span class="s2"&gt;"bbb"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="s2"&gt;"xyz"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"100"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然，demo 里面的是没问题的，应该是这样的：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Parameters: &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"etag"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"FmNco5xtUQvPhZOdMiqVBFG8fiJM"&lt;/span&gt;, &lt;span class="s2"&gt;"fname"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"df2.jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"fsize"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"131663"&lt;/span&gt;, &lt;span class="s2"&gt;"mimeType"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"image/jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"imageInfo"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;{&lt;/span&gt;&lt;span class="s2"&gt;"format"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"width"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"853"&lt;/span&gt;, &lt;span class="s2"&gt;"height"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"640"&lt;/span&gt;, &lt;span class="s2"&gt;"colorModel"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"ycbcr"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="s2"&gt;"endUser"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;, &lt;span class="s2"&gt;"key"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"items/2015/05/1432563304845-ny1pk2yr4fgupr3exgsfh4-9091677139ee85f92e54ad1dc34208bf-df2.jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"custom_fields"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;{&lt;/span&gt;&lt;span class="s2"&gt;"iid"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"51"&lt;/span&gt;, &lt;span class="s2"&gt;"bbb"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="s2"&gt;"xyz"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"100"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就这样，上传到七牛空间本来应该是有名字的文件都被字符串“filename”取代了，这样就很蛋疼。
那么像{timestamp}、{filename}、{unique-id}这样的变量到底是什么变量？应该不是 ruby 变量，是一个 js 变量么？
于是我去除了多余的 js，仅仅保留了&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//= require jquery&lt;/span&gt;
&lt;span class="c1"&gt;//= require jquery_ujs&lt;/span&gt;
&lt;span class="c1"&gt;//= require turbolinks&lt;/span&gt;
&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;span class="c1"&gt;//= require_tree .&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这几行，以避免 js 冲突，但是还是显示{filename} = =&lt;/p&gt;
&lt;h2 id="求帮助QUQ"&gt;求帮助 QUQ&lt;/h2&gt;
&lt;p&gt;我修改了 gem 的版本，将版本锁定到 0.0.4，结果就没有问题了&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Parameters: &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"etag"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"FmNco5xtUQvPhZOdMiqVBFG8fiJM"&lt;/span&gt;, &lt;span class="s2"&gt;"fname"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"df2.jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"fsize"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"131663"&lt;/span&gt;, &lt;span class="s2"&gt;"mimeType"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"image/jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"imageInfo"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;{&lt;/span&gt;&lt;span class="s2"&gt;"format"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"width"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"853"&lt;/span&gt;, &lt;span class="s2"&gt;"height"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"640"&lt;/span&gt;, &lt;span class="s2"&gt;"colorModel"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"ycbcr"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="s2"&gt;"endUser"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;, &lt;span class="s2"&gt;"key"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"items/2015/05/1432644798226-cypsqzdouy0c5wduf0umkr-5328df4f5c501e33a62de28639af9c06-df2.jpeg"&lt;/span&gt;, &lt;span class="s2"&gt;"custom_fields"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;{&lt;/span&gt;&lt;span class="s2"&gt;"iid"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"108"&lt;/span&gt;, &lt;span class="s2"&gt;"bbb"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="s2"&gt;"xyz"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"100"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>somejump</author>
      <pubDate>Mon, 25 May 2015 22:21:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/25743</link>
      <guid>https://ruby-china.org/topics/25743</guid>
    </item>
    <item>
      <title>【已解决】Puma + Nginx + Rails 服务器配置问题</title>
      <description>&lt;p&gt;我是小白，第二次配置 rails 服务器，首先创建/修改了 nginx/conf.d/mo.conf，完全复制了 puma 官方提供的源代码（当然更改了路径）&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;upstream myapp&lt;span class="o"&gt;(&lt;/span&gt;这里真的就只是“myapp”，没敢改成自己的appname&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  server unix:///home/mo1.0/tmp/puma.sock&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

server &lt;span class="o"&gt;{&lt;/span&gt;
  listen 80&lt;span class="p"&gt;;&lt;/span&gt;
  server_name myapp.com&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c"&gt;# ~2 seconds is often enough for most folks to parse HTML/CSS and&lt;/span&gt;
  &lt;span class="c"&gt;# retrieve needed images/icons/frames, connections are cheap in&lt;/span&gt;
  &lt;span class="c"&gt;# nginx so increasing this is generally safe...&lt;/span&gt;
  keepalive_timeout 5&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c"&gt;# path for static files&lt;/span&gt;
  root /home/mo1.0/public&lt;span class="p"&gt;;&lt;/span&gt;
  access_log /home/mo1.0/log/nginx.access.log&lt;span class="p"&gt;;&lt;/span&gt;
  error_log /home/mo1.0/log/nginx.error.log info&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c"&gt;# this rewrites all the requests to the maintenance.html&lt;/span&gt;
  &lt;span class="c"&gt;# page if it exists in the doc root. This is for capistrano's&lt;/span&gt;
  &lt;span class="c"&gt;# disable web task&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="nv"&gt;$document_root&lt;/span&gt;/maintenance.html&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    rewrite  ^&lt;span class="o"&gt;(&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nv"&gt;$ &lt;/span&gt; /maintenance.html last&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  location / &lt;span class="o"&gt;{&lt;/span&gt;
    proxy_set_header X-Forwarded-For &lt;span class="nv"&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    proxy_set_header Host &lt;span class="nv"&gt;$http_host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;# If the file exists as a static file serve it directly without&lt;/span&gt;
    &lt;span class="c"&gt;# running all the other rewite tests on it&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="nv"&gt;$request_filename&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c"&gt;# check for index.html for directory index&lt;/span&gt;
    &lt;span class="c"&gt;# if its there on the filesystem then rewite&lt;/span&gt;
    &lt;span class="c"&gt;# the url to add /index.html to the end of it&lt;/span&gt;
    &lt;span class="c"&gt;# and then break to send it to the next config rules.&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="nv"&gt;$request_filename&lt;/span&gt;/index.html&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      rewrite &lt;span class="o"&gt;(&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt;/index.html &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c"&gt;# this is the meat of the rack page caching config&lt;/span&gt;
    &lt;span class="c"&gt;# it adds .html to the end of the url and then checks&lt;/span&gt;
    &lt;span class="c"&gt;# the filesystem for that file. If it exists, then we&lt;/span&gt;
    &lt;span class="c"&gt;# rewite the url to have explicit .html on the end&lt;/span&gt;
    &lt;span class="c"&gt;# and then send it on its way to the next config rule.&lt;/span&gt;
    &lt;span class="c"&gt;# if there is no file on the fs then it sets all the&lt;/span&gt;
    &lt;span class="c"&gt;# necessary headers and proxies to our upstream pumas&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="nv"&gt;$request_filename&lt;/span&gt;.html&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      rewrite &lt;span class="o"&gt;(&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt;.html &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(!&lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="nv"&gt;$request_filename&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      proxy_pass http://myapp&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="c"&gt;# Now this supposedly should work as it gets the filenames with querystrings that Rails provides.&lt;/span&gt;
  &lt;span class="c"&gt;# BUT there's a chance it could break the ajax calls.&lt;/span&gt;
  location ~&lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;ico|css|gif|jpe?g|png|js&lt;span class="o"&gt;)(&lt;/span&gt;&lt;span class="se"&gt;\?&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;0-9]+&lt;span class="o"&gt;)&lt;/span&gt;?&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;
     expires max&lt;span class="p"&gt;;&lt;/span&gt;
     &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="c"&gt;# Error pages&lt;/span&gt;
  &lt;span class="c"&gt;# error_page 500 502 503 504 /500.html;&lt;/span&gt;
  location &lt;span class="o"&gt;=&lt;/span&gt; /500.html &lt;span class="o"&gt;{&lt;/span&gt;
    root /home/mo1.0/public&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后是 config/puma.rb&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;threads&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;
&lt;span class="n"&gt;workers&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="n"&gt;preload_app!&lt;/span&gt;
&lt;span class="n"&gt;on_worker_boot&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="no"&gt;ActiveSupport&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on_load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:active_record&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&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="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;establish_connection&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="s1"&gt;'unix:///home/mo1.0/tmp/puma.sock'&lt;/span&gt;
&lt;span class="n"&gt;stdout_redirect&lt;/span&gt; &lt;span class="s1"&gt;'/home/mo1.0/log/stdout'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'/home/mo1.0/log/stderr'&lt;/span&gt;
&lt;span class="n"&gt;environment&lt;/span&gt; &lt;span class="s1"&gt;'production'&lt;/span&gt;
&lt;span class="n"&gt;daemonize&lt;/span&gt;
&lt;span class="n"&gt;pidfile&lt;/span&gt; &lt;span class="s1"&gt;'/home/mo1.0/tmp/pids/puma.pid'&lt;/span&gt;
&lt;span class="n"&gt;state_path&lt;/span&gt; &lt;span class="s1"&gt;'/home/mo1.0/tmp/pids/puma.state'&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后把 puma 跑起来后输入 ps aux，发现运行的进程没有 puma
直接访问 ip（lz 还不会配置域名），提示 502 bad gateway，说明 nginx 跑起来了，puma 跪了
服务器是 linode 的，还挺好使的，域名买了了.com 的只不过还没 DNS 解析呢，想先测试一下，结果就这样了&lt;/p&gt;
&lt;h2 id="求帮忙QUQ"&gt;求帮忙 QUQ&lt;/h2&gt;
&lt;p&gt;解决方法：看 puma 的错误日志
=== puma startup: 2015-05-19 17:04:50 +0800 ===
/usr/local/rvm/gems/ruby-2.0.0-p643/gems/puma-2.9.0/lib/puma/cli.rb:246:in initialize': No such file or directory - /home/mo1.0/tmp/pids/puma.pid (Errno::ENOENT)
from /usr/local/rvm/gems/ruby-2.0.0-p643/gems/puma-2.9.0/lib/puma/cli.rb:246:inopen'
from /usr/local/rvm/gems/ruby-2.0.0-p643/gems/puma-2.9.0/lib/puma/cli.rb:246:in write_pid'
from /usr/local/rvm/gems/ruby-2.0.0-p643/gems/puma-2.9.0/lib/puma/cli.rb:222:inwrite_state'
from /usr/local/rvm/gems/ruby-2.0.0-p643/gems/puma-2.9.0/lib/puma/cluster.rb:332:in run'
from /usr/local/rvm/gems/ruby-2.0.0-p643/gems/puma-2.9.0/lib/puma/cli.rb:499:inrun'
from /usr/local/rvm/gems/ruby-2.0.0-p643/gems/puma-2.9.0/bin/puma:10:in '
from /usr/local/rvm/gems/ruby-2.0.0-p643/bin/puma:23:inload'
from /usr/local/rvm/gems/ruby-2.0.0-p643/bin/puma:23:in &lt;/p&gt;'
from /usr/local/rvm/gems/ruby-2.0.0-p643/bin/ruby_executable_hooks:15:ineval'
from /usr/local/rvm/gems/ruby-2.0.0-p643/bin/ruby_executable_hooks:15:in `'
发现文件夹路径设置错误，修正后即可（puma 可以自动生成文件，但不会生成文件夹）
此外，如果去掉后台化代码后 puma 运行时是不能操控终端的，如果发现可以继续操作中断说明 puma 跪了&lt;p&gt;&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Tue, 19 May 2015 12:10:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/25634</link>
      <guid>https://ruby-china.org/topics/25634</guid>
    </item>
    <item>
      <title>Carrierwave 多文件上传问题 - PG::SyntaxError: ERROR:  syntax error at or near "array"</title>
      <description>&lt;p&gt;数据库使用的是 postgreSQL
在按着 carrierwave 给出的官方文档操作时出现了问题&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;rails&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="n"&gt;migration&lt;/span&gt; &lt;span class="n"&gt;add_avatars_to_users&lt;/span&gt; &lt;span class="n"&gt;avatars&lt;/span&gt;&lt;span class="ss"&gt;:array&lt;/span&gt; &lt;span class="c1"&gt;#我写的是add_subimages_to_images subimages:array ,改成:json也试过，不行&lt;/span&gt;
&lt;span class="n"&gt;rake&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="ss"&gt;:migrate&lt;/span&gt; &lt;span class="c1"&gt;#上一部并没有出问题，但是这步出问题了&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以下是又长又多的 log，我稍微删减了一下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;20150502083130&lt;/span&gt; &lt;span class="no"&gt;AddSubimagesToImages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;migrating&lt;/span&gt; &lt;span class="o"&gt;=============================&lt;/span&gt;
&lt;span class="o"&gt;--&lt;/span&gt; &lt;span class="n"&gt;add_column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:subimage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;rake&lt;/span&gt; &lt;span class="n"&gt;aborted!&lt;/span&gt;
&lt;span class="no"&gt;StandardError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;An&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;has&lt;/span&gt; &lt;span class="n"&gt;occurred&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;later&lt;/span&gt; &lt;span class="n"&gt;migrations&lt;/span&gt; &lt;span class="ss"&gt;canceled:

&lt;/span&gt;&lt;span class="no"&gt;PG&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SyntaxError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;ERROR&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;syntax&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;near&lt;/span&gt; &lt;span class="s2"&gt;"array"&lt;/span&gt;
&lt;span class="no"&gt;LINE&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;ALTER&lt;/span&gt; &lt;span class="no"&gt;TABLE&lt;/span&gt; &lt;span class="s2"&gt;"images"&lt;/span&gt; &lt;span class="no"&gt;ADD&lt;/span&gt; &lt;span class="no"&gt;COLUMN&lt;/span&gt; &lt;span class="s2"&gt;"subimage"&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt;
                                                   &lt;span class="o"&gt;^&lt;/span&gt;
&lt;span class="o"&gt;.........&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;StatementInvalid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;PG&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SyntaxError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;ERROR&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;syntax&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;near&lt;/span&gt; &lt;span class="s2"&gt;"array"&lt;/span&gt;
&lt;span class="no"&gt;LINE&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;ALTER&lt;/span&gt; &lt;span class="no"&gt;TABLE&lt;/span&gt; &lt;span class="s2"&gt;"images"&lt;/span&gt; &lt;span class="no"&gt;ADD&lt;/span&gt; &lt;span class="no"&gt;COLUMN&lt;/span&gt; &lt;span class="s2"&gt;"subimage"&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt;
                                                   &lt;span class="o"&gt;^&lt;/span&gt;
&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;ALTER&lt;/span&gt; &lt;span class="no"&gt;TABLE&lt;/span&gt; &lt;span class="s2"&gt;"images"&lt;/span&gt; &lt;span class="no"&gt;ADD&lt;/span&gt; &lt;span class="no"&gt;COLUMN&lt;/span&gt; &lt;span class="s2"&gt;"subimage"&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt;
&lt;span class="o"&gt;...........&lt;/span&gt;
&lt;span class="no"&gt;PG&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SyntaxError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;ERROR&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;syntax&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;near&lt;/span&gt; &lt;span class="s2"&gt;"array"&lt;/span&gt;
&lt;span class="no"&gt;Tasks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;TOP&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="ss"&gt;:migrate&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;See&lt;/span&gt; &lt;span class="n"&gt;full&lt;/span&gt; &lt;span class="n"&gt;trace&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt; &lt;span class="n"&gt;running&lt;/span&gt; &lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;trace&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;是不是 pg 不支持那种方法呢？可是我又不能换数据库呀，做了好久的项目.......&lt;/p&gt;
&lt;h2 id="求大神解答，谢谢！"&gt;求大神解答，谢谢！&lt;/h2&gt;
&lt;p&gt;不知道为什么，rails 自己生成的 migration 代码有错误
应该改成这样：&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;AddSubimagesToImages&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;Migration&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;change&lt;/span&gt;
    &lt;span class="n"&gt;add_column&lt;/span&gt; &lt;span class="ss"&gt;:images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:subimages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;array: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;default: &lt;/span&gt;&lt;span class="s1"&gt;'{}'&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;</description>
      <author>somejump</author>
      <pubDate>Sat, 02 May 2015 16:48:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/25407</link>
      <guid>https://ruby-china.org/topics/25407</guid>
    </item>
    <item>
      <title>关于七牛云的一些科普性问题</title>
      <description>&lt;p&gt;1.现在我了解的七牛云通过 ROR 上传文件的方式有两个 GEM：
一个是 carrrierwave-qiniu
一个是 qiniu
这两个是什么关系？为什么需要填写两次 AK/SK？
2.carrrierwave-qiniu 可以很流畅地运作，但是当我使用传统的表单上传方法时，总是 bad token 或者是"token not specified"，token 应该是没问题，但是总是报上述错。有人使用表单成功过么？&lt;/p&gt;

&lt;p&gt;谢谢&lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Wed, 11 Mar 2015 01:55:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/24580</link>
      <guid>https://ruby-china.org/topics/24580</guid>
    </item>
    <item>
      <title>gem therubyracer 和 libv8 的安装问题</title>
      <description>&lt;p&gt;本人小白，如果已经有人问过了这个问题，真的是不是我故意问的，是因为我无法通过本站的谷歌搜索。若有人问过了，××附上以前的问题链接××就行了。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--&lt;/span&gt; gem &lt;span class="nb"&gt;install &lt;/span&gt;therubyracer &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="s1"&gt;'0.12.1'&lt;/span&gt;
Building native extensions.  This could take a &lt;span class="k"&gt;while&lt;/span&gt;...
ERROR:  Error installing therubyracer:
    ERROR: Failed to build gem native extension.
    /home/myname/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb
checking &lt;span class="k"&gt;for &lt;/span&gt;main&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nt"&gt;-lpthread&lt;/span&gt;... &lt;span class="nb"&gt;yes
&lt;/span&gt;checking &lt;span class="k"&gt;for &lt;/span&gt;v8.h... no
&lt;span class="k"&gt;***&lt;/span&gt; extconf.rb failed &lt;span class="k"&gt;***&lt;/span&gt;
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file &lt;span class="k"&gt;for &lt;/span&gt;more details.  You may
need configuration options.

Provided configuration options:
    &lt;span class="nt"&gt;--with-opt-dir&lt;/span&gt;
    &lt;span class="nt"&gt;--without-opt-dir&lt;/span&gt;
    &lt;span class="nt"&gt;--with-opt-include&lt;/span&gt;
    &lt;span class="nt"&gt;--without-opt-include&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;-dir&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/include
    &lt;span class="nt"&gt;--with-opt-lib&lt;/span&gt;
    &lt;span class="nt"&gt;--without-opt-lib&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;-dir&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/lib
    &lt;span class="nt"&gt;--with-make-prog&lt;/span&gt;
    &lt;span class="nt"&gt;--without-make-prog&lt;/span&gt;
    &lt;span class="nt"&gt;--srcdir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
    &lt;span class="nt"&gt;--curdir&lt;/span&gt;
    &lt;span class="nt"&gt;--ruby&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/zhengjinyang/.rvm/rubies/ruby-2.1.1/bin/ruby
    &lt;span class="nt"&gt;--with-pthreadlib&lt;/span&gt;
    &lt;span class="nt"&gt;--without-pthreadlib&lt;/span&gt;
    &lt;span class="nt"&gt;--enable-debug&lt;/span&gt;
    &lt;span class="nt"&gt;--disable-debug&lt;/span&gt;
    &lt;span class="nt"&gt;--with-v8-dir&lt;/span&gt;
    &lt;span class="nt"&gt;--without-v8-dir&lt;/span&gt;
    &lt;span class="nt"&gt;--with-v8-include&lt;/span&gt;
    &lt;span class="nt"&gt;--without-v8-include&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;v8&lt;/span&gt;&lt;span class="p"&gt;-dir&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/include
    &lt;span class="nt"&gt;--with-v8-lib&lt;/span&gt;
    &lt;span class="nt"&gt;--without-v8-lib&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;v8&lt;/span&gt;&lt;span class="p"&gt;-dir&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/lib
/home/myname/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.7/ext/libv8/location.rb:50:in &lt;span class="sb"&gt;`&lt;/span&gt;configure&lt;span class="s1"&gt;': You have chosen to use the version of V8 found on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundle with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.7 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location

thanks,
The Mgmt

    from /home/myname/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.7/lib/libv8.rb:7:in `configure_makefile'&lt;/span&gt;
    from extconf.rb:32:in &lt;span class="sb"&gt;`&lt;/span&gt;&amp;lt;main&amp;gt;&lt;span class="s1"&gt;'

extconf failed, exit code 1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;没错，我是使用了系统自带的 libv8，这是因为如果不那样我安装 libv8 都要报错
错误就像上面那样：Failed to build gem native extension.
网上给的装上 libv8 的方法是加上 -- --with-system-v8
但是这明显指标不治本
求助呀，难道我要重装 rails 了么？ &lt;/p&gt;</description>
      <author>somejump</author>
      <pubDate>Thu, 11 Dec 2014 22:53:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/23147</link>
      <guid>https://ruby-china.org/topics/23147</guid>
    </item>
  </channel>
</rss>
