<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zqalyc (zqalyc)</title>
    <link>https://ruby-china.org/zqalyc</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>国密 SM2，Ruby 怎么实现？</title>
      <description>&lt;p&gt;请问国密 SM2（加密模式 C1C3C2）有没有 ruby 的加解密？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Tue, 18 Oct 2022 10:13:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/42697</link>
      <guid>https://ruby-china.org/topics/42697</guid>
    </item>
    <item>
      <title>Ruby 2.4.1 floor 保留小数的问题</title>
      <description>&lt;p&gt;ruby 版本 2.4.1&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;526.56&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;526.55&lt;/span&gt; 
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;应该输出 526.56&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Fri, 26 Jan 2018 18:07:42 +0800</pubDate>
      <link>https://ruby-china.org/topics/34953</link>
      <guid>https://ruby-china.org/topics/34953</guid>
    </item>
    <item>
      <title>分享一下 Ruby 中 Base64 图片转换为 jpg 和把远程图片转换为 Base64 的图片格式</title>
      <description>&lt;p&gt;写&lt;code&gt;api&lt;/code&gt;接口中，遇到了图片由&lt;code&gt;base64&lt;/code&gt;的方式传输，因此了解了&lt;a href="http://ruby-doc.org/stdlib-1.9.3/libdoc/tempfile/rdoc/Tempfile.html" rel="nofollow" target="_blank" title=""&gt;Tempfile&lt;/a&gt;,贴出来记录一下！&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.根据远程图片&lt;code&gt;jpg/png&lt;/code&gt;的&lt;code&gt;url&lt;/code&gt;,转换为&lt;code&gt;base64&lt;/code&gt;图片格式&lt;/strong&gt;&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;image_to_base64&lt;/span&gt;
    &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'open-uri'&lt;/span&gt;
    &lt;span class="n"&gt;tempfile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'http://ofkzuey9y.bkt.clouddn.com/bala-logo.png'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;image_base64&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Base64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encode64&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;2.将图片的&lt;code&gt;base64&lt;/code&gt;格式转换成&lt;code&gt;jpg/png&lt;/code&gt;格式&lt;/strong&gt;&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;base64_to_image&lt;/span&gt;

    &lt;span class="c1"&gt;#注意: 要去掉base64_img 的base64的开头部分"data:image/png;base64,"&lt;/span&gt;
    &lt;span class="n"&gt;img_base64&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"data:img/jpg;base64,iVBORw0KGgoAAAAN..."&lt;/span&gt;
    &lt;span class="n"&gt;img_base64&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img_base64&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"data:img/jpg;base64,"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;length&lt;/span&gt;&lt;span class="o"&gt;..-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;tempfile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Tempfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"1.jpg"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;binmode&lt;/span&gt;
    &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;Base64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode64&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img_base64&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;path&lt;/span&gt; &lt;span class="c1"&gt;#临时文件的路径&lt;/span&gt;
    &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;
 &lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;</description>
      <author>zqalyc</author>
      <pubDate>Thu, 22 Dec 2016 17:36:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/31976</link>
      <guid>https://ruby-china.org/topics/31976</guid>
    </item>
    <item>
      <title>rewrite 使不同域名重定向到不同界面的问题</title>
      <description>&lt;p&gt;w1.demo.com; w2.demo.com 这两个二级域名如何访问项目中的不同界面？&lt;/p&gt;

&lt;p&gt;例如:
输入 w1.demo.com 访问 w1.html 界面，输入 w2.demo.com 访问 w2.html 界面&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;server &lt;span class="o"&gt;{&lt;/span&gt;
listen 80；
server_name w2.demo.com&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$host&lt;/span&gt; ~&lt;span class="k"&gt;*&lt;/span&gt;  w2.demo.com&lt;span class="o"&gt;)&lt;/span&gt;
 rewrite ^ http://w2.demo.com/?id&lt;span class="o"&gt;=&lt;/span&gt;100
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后台是根据 id 来判断调用相应的界面
上面的写法造成了死循环，或者有没有其他方式可以让 nginx 向后台传入参数 id 的值？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Fri, 28 Nov 2014 15:27:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/22914</link>
      <guid>https://ruby-china.org/topics/22914</guid>
    </item>
    <item>
      <title>ruby 获取由两个字节的 12 个比特位组成的一个整型值</title>
      <description>&lt;p&gt;每个数据点由两个字节的 12 个比特位组成一个整型值：
取第一个字节的低 5 位比特位，取第二个字节的低 7 个比特位，按照顺序组成一个整型值
请问这个方法要怎么写？&lt;/p&gt;

&lt;p&gt;这样写有问题么？&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"abcd"&lt;/span&gt;
&lt;span class="n"&gt;bit_data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unpack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;b&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;bit_data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;bit_data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;data_int&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="n"&gt;len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;bit_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;length&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;
&lt;span class="n"&gt;len&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;times&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;i&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;
    &lt;span class="n"&gt;data_c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;bit_data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# 获取两个字节的16位比特位&lt;/span&gt;
    &lt;span class="n"&gt;data_d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data_c&lt;/span&gt;&lt;span class="p"&gt;[&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;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;data_c&lt;/span&gt;&lt;span class="p"&gt;[&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;7&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;data_d_int&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data_d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_i&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;  &lt;span class="c1"&gt;# 12位bit转换成整型  &lt;/span&gt;
    &lt;span class="n"&gt;data_int&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ecg_d_int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;正确写法&lt;/span&gt;&lt;span class="err"&gt;：&lt;/span&gt;
&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s1"&gt;'a'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ord&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mb"&gt;0b11111&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'b'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ord&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mb"&gt;0b1111111&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>zqalyc</author>
      <pubDate>Tue, 28 Oct 2014 18:10:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/22317</link>
      <guid>https://ruby-china.org/topics/22317</guid>
    </item>
    <item>
      <title>Nginx rewrite 生成规则的问题 (URL 为 post 接口)</title>
      <description>&lt;p&gt;访问：&lt;/p&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;http://www.kangbing.com/blood/create/show/infor/123?id=123（post接口）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;转发到：&lt;/p&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;http://www.kangbing.com/blood/create?id=123（post接口）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;nginx rewrite 配置：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;location /blood/create&lt;span class="o"&gt;{&lt;/span&gt;
 rewrite  ^/create/&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; /create  permanent&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="c"&gt;#rewrite  ^/(.*)/create/(.*)$  /$1/create  permanent;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;用&lt;code&gt;shell rewrite  ^/(.*)/create/(.*)$  /$1/create  permanent;&lt;/code&gt;能够转发到：&lt;code&gt;shell http://www.kangbing.com/blood/create?id=123&lt;/code&gt;但是接口变为 get 请求了。
用 &lt;code&gt;shellrewrite  ^/create/(.*)$  /create  permanent;&lt;/code&gt;不起作用&lt;/p&gt;

&lt;p&gt;需要怎么修改？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Thu, 14 Aug 2014 16:52:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/21028</link>
      <guid>https://ruby-china.org/topics/21028</guid>
    </item>
    <item>
      <title>解析 URL 提取转换成项目实际的 url</title>
      <description>&lt;pre class="highlight erb"&gt;&lt;code&gt;1.http://www.kanbing.com/create?id=1
2.http://www.kanbing.com/create/bg/101/1/3?id=3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第一个是我项目的接口，但是对方请求发送多来的是第二种形式（在外提供的 url 基础上自动增加了目录）。
我如何解析请求过来的第二个 url，然后转发到第一种请求上，获取数据？（服务器：nginx+unicorn）&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Wed, 13 Aug 2014 20:43:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/21012</link>
      <guid>https://ruby-china.org/topics/21012</guid>
    </item>
    <item>
      <title>render json 返回到客户端的对象 id 减小或者增加一位数</title>
      <description>&lt;p&gt;使用 mysql 数据库和&lt;code&gt;gem 'jbuilder'&lt;/code&gt;&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;show&lt;/span&gt; 
&lt;span class="vi"&gt;@user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11406801162481275&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="vi"&gt;@user.id&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="sr"&gt;/输出为11406801162481275
id=11406801162481275
render json: {success:true,msg:@user,user_id:id}
end
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是客户端接收到的&lt;a href="/user" class="user-mention" title="@user"&gt;&lt;i&gt;@&lt;/i&gt;user&lt;/a&gt;的 id 变为 11406801162481276 了，并且 user_id 也是 11406801162481276，但是 id=11406801162481276，那么客户端接收的 user_id=11406801162481276&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Thu, 31 Jul 2014 17:58:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/20785</link>
      <guid>https://ruby-china.org/topics/20785</guid>
    </item>
    <item>
      <title>rails 调用一个耗时的外部命令，整个应用被卡死。</title>
      <description>&lt;p&gt;我有个 gem 包，其中的 a 页面用到 ajax 请求一个外部命令，特别耗时。获取数据后在 a 页面用 js 处理显示（因为此时显示的是大量的影像数据所以更耗时）。然后主程序 b 页面又显示 a 页面，这样导致在没有加载完这个 b 页面之前，点击这个项目其他功能没有反应，整个应用都被卡死了。现在想到的唯一的方法就是重新部署一个项目，使用这个 gem 包，然后再用 iframe 去调用这个程序的 a 页面。
rails 可以开启进程调用某个方法后，再用这个进程在浏览器渲染出一个页面吗？
大家有什么好的办法么？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Wed, 19 Mar 2014 10:39:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/17996</link>
      <guid>https://ruby-china.org/topics/17996</guid>
    </item>
    <item>
      <title>settingslogic 在 application.rb 中配置全局变量会报错</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;yml&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="ss"&gt;defaults: &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;
  &lt;span class="ss"&gt;files:
    host: &lt;/span&gt;&lt;span class="s1"&gt;'192.168.1.1'&lt;/span&gt;
    &lt;span class="ss"&gt;port: &lt;/span&gt;&lt;span class="s1"&gt;'8080'&lt;/span&gt;

&lt;span class="ss"&gt;development:
  &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;

&lt;span class="ss"&gt;production:
  files:
    host: &lt;/span&gt;&lt;span class="s1"&gt;'192.168.1.1'&lt;/span&gt;
    &lt;span class="ss"&gt;port: &lt;/span&gt;&lt;span class="s1"&gt;'8080'&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;settings&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;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Settings&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;Settingslogic&lt;/span&gt;
  &lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;root&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/config/application.yml"&lt;/span&gt;
  &lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;env&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;application&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="no"&gt;FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="no"&gt;Settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fles&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;application.rb 会报错：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Uncaught&lt;/span&gt; &lt;span class="ss"&gt;exception: &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;Settings&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>zqalyc</author>
      <pubDate>Tue, 11 Feb 2014 11:30:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/17161</link>
      <guid>https://ruby-china.org/topics/17161</guid>
    </item>
    <item>
      <title>如何启动后台进程完成一个定时任务</title>
      <description>&lt;p&gt;需要在指定的时间内查询某些表进行处理，需要写一个后台进程，如何写？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Mon, 10 Feb 2014 15:28:18 +0800</pubDate>
      <link>https://ruby-china.org/topics/17146</link>
      <guid>https://ruby-china.org/topics/17146</guid>
    </item>
    <item>
      <title>rails 中 http 客户端获取其它服务数据效率的比较</title>
      <description>&lt;p&gt;目前用的 ruby 自带的 require "net/http"，查询一个登陆验证的接口需要 400 多 ms。
后来查询到还有
rest-client
httparty
Weary
这几个哪个速度比较快？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Mon, 20 Jan 2014 15:13:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/16890</link>
      <guid>https://ruby-china.org/topics/16890</guid>
    </item>
    <item>
      <title>网站访问有些慢</title>
      <description>&lt;p&gt;其实是新项目，功能不太多，但是访问的速度有些慢，请问如何优化？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Wed, 08 Jan 2014 11:42:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/16687</link>
      <guid>https://ruby-china.org/topics/16687</guid>
    </item>
    <item>
      <title>如何访问 engine 中 models 中的子文件夹下的类</title>
      <description>&lt;p&gt;创建了一个 rials 的 engine，在 app/models/USER/user.rb 创建了一个普通的 user 类
当&lt;/p&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;/code&gt;&lt;/pre&gt;
&lt;p&gt;报错：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&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;user 类如下：&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;User&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;请问如何访问到 User&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Thu, 19 Dec 2013 16:37:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/16313</link>
      <guid>https://ruby-china.org/topics/16313</guid>
    </item>
    <item>
      <title>Rails 上传大的文件</title>
      <description>&lt;p&gt;请问我要通过 rails 的 form 上传 100M 的文件到另外一个‘文件服务器’中，我不想在本地服务器保存，我想直接上传到‘文件服务器’，需要怎么办？
这个‘文件服务器’上传时对外提供了一个接口，直接输入一个文件的地址就可以上传。我现在的做法是先上传到运行 rails 项目的服务器上，然后把保存的路径传给‘文件服务器’的接口进行上传。
还有一种思路：
当我的服务器接收文件的时候，我获取传到后台的 form 表单的数据流，然后向文件服务器发起连接，然后读一点写一点，直接写到文件服务器中，这种可以么？我在后台获取了表单传过来的 file_field 字段的值：params[:inspection_report]['inspection_file'].tempfile 接下来怎么弄？
哪位朋友有好的方法，给个思路，谢谢&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Tue, 12 Nov 2013 14:48:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/15480</link>
      <guid>https://ruby-china.org/topics/15480</guid>
    </item>
    <item>
      <title>为什么 nginx 两个端口访问的是同一个项目</title>
      <description>&lt;p&gt;nginx 配置文件：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;upstream&lt;/span&gt; &lt;span class="n"&gt;app_hyperion&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;server&lt;/span&gt;  &lt;span class="n"&gt;unix&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;unicorn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hyperion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;listen&lt;/span&gt;   &lt;span class="mi"&gt;9001&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;server_name&lt;/span&gt; &lt;span class="n"&gt;localhost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt;       &lt;span class="sr"&gt;/home/u&lt;/span&gt;&lt;span class="n"&gt;buntu&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rhea&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="kp"&gt;public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;index&lt;/span&gt;      &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="n"&gt;location&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="no"&gt;X&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;IP&lt;/span&gt;  &lt;span class="vg"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="no"&gt;X&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Forwarded&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;For&lt;/span&gt; &lt;span class="vg"&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="no"&gt;Host&lt;/span&gt; &lt;span class="vg"&gt;$http_host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;proxy_redirect&lt;/span&gt;    &lt;span class="n"&gt;off&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;try_files&lt;/span&gt; &lt;span class="sr"&gt;/system/m&lt;/span&gt;&lt;span class="n"&gt;aintenance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="vg"&gt;$uri&lt;/span&gt; &lt;span class="vg"&gt;$uri&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="vg"&gt;$uri&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="vi"&gt;@ruby&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;location&lt;/span&gt; &lt;span class="vi"&gt;@ruby&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;proxy_pass&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;app_hyperion&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;listen&lt;/span&gt;   &lt;span class="mi"&gt;9002&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;server_name&lt;/span&gt; &lt;span class="n"&gt;localhost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt;       &lt;span class="sr"&gt;/home/u&lt;/span&gt;&lt;span class="n"&gt;buntu&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;hyperion&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="kp"&gt;public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;index&lt;/span&gt;      &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="n"&gt;location&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="no"&gt;X&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;IP&lt;/span&gt;  &lt;span class="vg"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="no"&gt;X&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Forwarded&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;For&lt;/span&gt; &lt;span class="vg"&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="no"&gt;Host&lt;/span&gt; &lt;span class="vg"&gt;$http_host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;proxy_redirect&lt;/span&gt;    &lt;span class="n"&gt;off&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;try_files&lt;/span&gt; &lt;span class="sr"&gt;/system/m&lt;/span&gt;&lt;span class="n"&gt;aintenance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="vg"&gt;$uri&lt;/span&gt; &lt;span class="vg"&gt;$uri&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="vg"&gt;$uri&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="vi"&gt;@ruby&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;location&lt;/span&gt; &lt;span class="vi"&gt;@ruby&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;proxy_pass&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;app_hyperion&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;</description>
      <author>zqalyc</author>
      <pubDate>Wed, 30 Oct 2013 16:09:18 +0800</pubDate>
      <link>https://ruby-china.org/topics/15159</link>
      <guid>https://ruby-china.org/topics/15159</guid>
    </item>
    <item>
      <title>直接 ip 访问速度很快，但是加端口访问速度变的很慢</title>
      <description>&lt;p&gt;nignx 的 sites-available 配置如下：&lt;/p&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&lt;span class="n"&gt;upstream&lt;/span&gt; &lt;span class="n"&gt;myapp&lt;/span&gt; {
  &lt;span class="n"&gt;server&lt;/span&gt;  &lt;span class="n"&gt;unix&lt;/span&gt;:/&lt;span class="n"&gt;tmp&lt;/span&gt;/&lt;span class="n"&gt;unicorn&lt;/span&gt;.&lt;span class="n"&gt;hmp&lt;/span&gt;.&lt;span class="n"&gt;sock&lt;/span&gt;;
}
&lt;span class="n"&gt;server&lt;/span&gt; {
    &lt;span class="n"&gt;listen&lt;/span&gt;   &lt;span class="m"&gt;80&lt;/span&gt;;
    &lt;span class="n"&gt;server_name&lt;/span&gt; &lt;span class="n"&gt;hmp&lt;/span&gt;;

    &lt;span class="n"&gt;access_log&lt;/span&gt; /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;git&lt;/span&gt;/&lt;span class="n"&gt;deploy&lt;/span&gt;/&lt;span class="n"&gt;current&lt;/span&gt;/&lt;span class="n"&gt;log&lt;/span&gt;/&lt;span class="n"&gt;access&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt;;
    &lt;span class="n"&gt;error_log&lt;/span&gt;  /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;git&lt;/span&gt;/&lt;span class="n"&gt;deploy&lt;/span&gt;/&lt;span class="n"&gt;current&lt;/span&gt;/&lt;span class="n"&gt;log&lt;/span&gt;/&lt;span class="n"&gt;error&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt;;
    &lt;span class="c"&gt;#root       /home/git/hmp;                                                                           
&lt;/span&gt;    &lt;span class="n"&gt;index&lt;/span&gt;      &lt;span class="n"&gt;index&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt;;

    &lt;span class="n"&gt;location&lt;/span&gt; / {
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="n"&gt;X&lt;/span&gt;-&lt;span class="n"&gt;Real&lt;/span&gt;-&lt;span class="n"&gt;IP&lt;/span&gt;  $&lt;span class="n"&gt;remote_addr&lt;/span&gt;;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="n"&gt;X&lt;/span&gt;-&lt;span class="n"&gt;Forwarded&lt;/span&gt;-&lt;span class="n"&gt;For&lt;/span&gt; $&lt;span class="n"&gt;proxy_add_x_forwarded_for&lt;/span&gt;;
        &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="n"&gt;Host&lt;/span&gt; $&lt;span class="n"&gt;http_host&lt;/span&gt;;
        &lt;span class="n"&gt;proxy_redirect&lt;/span&gt;    &lt;span class="n"&gt;off&lt;/span&gt;;
        &lt;span class="n"&gt;try_files&lt;/span&gt; /&lt;span class="n"&gt;system&lt;/span&gt;/&lt;span class="n"&gt;maintenance&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt;/&lt;span class="n"&gt;index&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; @&lt;span class="n"&gt;user1&lt;/span&gt;;
    }

    &lt;span class="n"&gt;location&lt;/span&gt; @&lt;span class="n"&gt;user2&lt;/span&gt; {
        &lt;span class="n"&gt;proxy_pass&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;://&lt;span class="n"&gt;myapp&lt;/span&gt;;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;unicorn 文件如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;worker_processes&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="no"&gt;APP_PATH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"/home/git/deploy/current"&lt;/span&gt;
&lt;span class="n"&gt;working_directory&lt;/span&gt; &lt;span class="no"&gt;APP_PATH&lt;/span&gt;

&lt;span class="c1"&gt;#/tmp/unicorn.rhea.sock;  这个sock来自 nginx的配置&lt;/span&gt;
&lt;span class="n"&gt;listen&lt;/span&gt; &lt;span class="s2"&gt;"/tmp/unicorn.hmp.sock"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:backlog&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;
&lt;span class="n"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:tcp_nopush&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
&lt;span class="n"&gt;pid&lt;/span&gt; &lt;span class="no"&gt;APP_PATH&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;"/tmp/pids/unicorn.pid"&lt;/span&gt;
&lt;span class="n"&gt;stderr_path&lt;/span&gt; &lt;span class="no"&gt;APP_PATH&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;"/log/unicorn.stderr.log"&lt;/span&gt;
&lt;span class="n"&gt;stdout_path&lt;/span&gt; &lt;span class="no"&gt;APP_PATH&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;"/log/unicorn.stderr.log"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果直接访问 192.168.1.3 加载页面速度很快，但是 192.168.1.3:8000 这样访问会变的很慢，这是什么原因
各位帮忙看一下，谢谢。&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Mon, 16 Sep 2013 11:26:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/14152</link>
      <guid>https://ruby-china.org/topics/14152</guid>
    </item>
    <item>
      <title>Nginx 部署两个 Rails 项目, 其中一个 mina deploy 报权限错误，请问怎么解决</title>
      <description>&lt;p&gt;mina 报错&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Permission denied,please try agin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置文件的信息：&lt;/p&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&lt;span class="n"&gt;upstream&lt;/span&gt; &lt;span class="n"&gt;myapp&lt;/span&gt;{
&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="n"&gt;unix&lt;/span&gt;:/&lt;span class="n"&gt;tmp&lt;/span&gt;/&lt;span class="n"&gt;unicorn&lt;/span&gt;.&lt;span class="n"&gt;hpp&lt;/span&gt;.&lt;span class="n"&gt;sock&lt;/span&gt;;

}
&lt;span class="n"&gt;server&lt;/span&gt; {
&lt;span class="n"&gt;listen&lt;/span&gt;  &lt;span class="m"&gt;80&lt;/span&gt;;
&lt;span class="n"&gt;server_name&lt;/span&gt; &lt;span class="n"&gt;hpp&lt;/span&gt;;
&lt;span class="n"&gt;client_max_body_size&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;;
&lt;span class="n"&gt;client_body_buffer_size&lt;/span&gt; &lt;span class="m"&gt;20&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;;
&lt;span class="n"&gt;access_log&lt;/span&gt; /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;hmpuser&lt;/span&gt;/&lt;span class="n"&gt;deploy&lt;/span&gt;/&lt;span class="n"&gt;shared&lt;/span&gt;/&lt;span class="n"&gt;log&lt;/span&gt;/&lt;span class="n"&gt;access&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt;;
&lt;span class="n"&gt;error_log&lt;/span&gt; /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;hmpuser&lt;/span&gt;/&lt;span class="n"&gt;deploy&lt;/span&gt;/&lt;span class="n"&gt;shared&lt;/span&gt;/&lt;span class="n"&gt;log&lt;/span&gt;/&lt;span class="n"&gt;error&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt;;
&lt;span class="n"&gt;root&lt;/span&gt;      /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;hmpuser&lt;/span&gt;/&lt;span class="n"&gt;deploy&lt;/span&gt;/&lt;span class="n"&gt;current&lt;/span&gt;;
&lt;span class="n"&gt;index&lt;/span&gt;    &lt;span class="n"&gt;index&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt;;

&lt;span class="n"&gt;location&lt;/span&gt; / { 
     &lt;span class="n"&gt;proxy_set_header&lt;/span&gt; &lt;span class="n"&gt;X&lt;/span&gt;-&lt;span class="n"&gt;Real&lt;/span&gt;-&lt;span class="n"&gt;IP&lt;/span&gt;  $&lt;span class="n"&gt;remote_addr&lt;/span&gt;;
     &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="n"&gt;X&lt;/span&gt;-&lt;span class="n"&gt;Forwarded&lt;/span&gt;-&lt;span class="n"&gt;For&lt;/span&gt;  $&lt;span class="n"&gt;proxy_add_x_forwarded_for&lt;/span&gt;;
     &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="n"&gt;Host&lt;/span&gt; $&lt;span class="n"&gt;http_host&lt;/span&gt;;
     &lt;span class="n"&gt;proxy_redirect&lt;/span&gt;    &lt;span class="n"&gt;off&lt;/span&gt;;
    &lt;span class="n"&gt;try_files&lt;/span&gt; /&lt;span class="n"&gt;system&lt;/span&gt;/&lt;span class="n"&gt;maintenance&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt;/&lt;span class="n"&gt;index&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; @&lt;span class="n"&gt;user1&lt;/span&gt;;
}


&lt;span class="n"&gt;server&lt;/span&gt;{
&lt;span class="n"&gt;listen&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt;;
&lt;span class="n"&gt;server_name&lt;/span&gt; &lt;span class="n"&gt;rhh&lt;/span&gt;;
&lt;span class="n"&gt;access_log&lt;/span&gt; /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;hmpuser&lt;/span&gt;/&lt;span class="n"&gt;deploy&lt;/span&gt;/&lt;span class="n"&gt;shared&lt;/span&gt;/&lt;span class="n"&gt;log&lt;/span&gt;/&lt;span class="n"&gt;access2&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt;;
&lt;span class="n"&gt;error_log&lt;/span&gt; /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;hmpuser&lt;/span&gt;/&lt;span class="n"&gt;deploy&lt;/span&gt;/&lt;span class="n"&gt;shared&lt;/span&gt;/&lt;span class="n"&gt;log&lt;/span&gt;/&lt;span class="n"&gt;error2&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt;;
&lt;span class="n"&gt;root&lt;/span&gt;  /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;hmpuser&lt;/span&gt;/&lt;span class="n"&gt;deployRhea&lt;/span&gt;/&lt;span class="n"&gt;current&lt;/span&gt;;
&lt;span class="n"&gt;index&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt;;
&lt;span class="n"&gt;location&lt;/span&gt; /{
 &lt;span class="n"&gt;proxy_set_header&lt;/span&gt; &lt;span class="n"&gt;X&lt;/span&gt;-&lt;span class="n"&gt;Real&lt;/span&gt;-&lt;span class="n"&gt;IP&lt;/span&gt; $&lt;span class="n"&gt;remote_addr&lt;/span&gt;;
 &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;  &lt;span class="n"&gt;X&lt;/span&gt;-&lt;span class="n"&gt;Forwarded&lt;/span&gt;-&lt;span class="n"&gt;For&lt;/span&gt; $&lt;span class="n"&gt;proxy_add_x_forwarded_for&lt;/span&gt;;
 &lt;span class="n"&gt;proxy_set_header&lt;/span&gt;   &lt;span class="n"&gt;Host&lt;/span&gt; $&lt;span class="n"&gt;http_host&lt;/span&gt;;
 &lt;span class="n"&gt;proxy_redirect&lt;/span&gt; &lt;span class="n"&gt;off&lt;/span&gt;;
 &lt;span class="n"&gt;try_files&lt;/span&gt; /&lt;span class="n"&gt;system&lt;/span&gt;/&lt;span class="n"&gt;mainteance&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt;/&lt;span class="n"&gt;index&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; $&lt;span class="n"&gt;uri&lt;/span&gt;.&lt;span class="n"&gt;html&lt;/span&gt; @&lt;span class="n"&gt;user2&lt;/span&gt;;
}
}
&lt;span class="n"&gt;location&lt;/span&gt; @&lt;span class="n"&gt;user3&lt;/span&gt;{
&lt;span class="n"&gt;proxy_pass&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;://&lt;span class="n"&gt;myap&lt;/span&gt;;
}
}
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>zqalyc</author>
      <pubDate>Thu, 22 Aug 2013 09:48:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/13508</link>
      <guid>https://ruby-china.org/topics/13508</guid>
    </item>
    <item>
      <title>carrierWave 如何实现创建 version 时即获得图片固定尺寸又不把太大的图片裁剪</title>
      <description>&lt;p&gt;&lt;code&gt;resize_to_fit(700,700)&lt;/code&gt;是按原图的最长的长或宽比例缩放但是不会固定图片大小为 700。&lt;code&gt;resize_to_fill(700,700)&lt;/code&gt;能固定图片为 700，但是上传的图片太大会裁剪原图。如何实现创建的 version 是自定义尺寸而且不会裁剪原图？&lt;/p&gt;</description>
      <author>zqalyc</author>
      <pubDate>Thu, 08 Aug 2013 14:21:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/13159</link>
      <guid>https://ruby-china.org/topics/13159</guid>
    </item>
    <item>
      <title>如何创建一个 Gem 和 Engine</title>
      <description>&lt;h2 id="一：创建gem"&gt;一：创建 gem&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;生成 gem 文件&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;bundle gem a
      create  a/Gemfile
      create  a/Rakefile
      create  a/.gitignore
      create  a/a.gemspec
      create  a/lib/a.rb
      create  a/lib/a/version.rb
Initializating git repo &lt;span class="k"&gt;in&lt;/span&gt; /Users/camel/a
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;编码。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;打开 &lt;code&gt;a.gemspec&lt;/code&gt; ，这个文件里面都是这个 gem 的一些说明。
找到&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;     &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sx"&gt;%q{TODO: Write a gem summary}&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sx"&gt;%q{TODO: Write a gem description}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;去掉其中的 TODO，可先改为 (任意写)&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;     &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sx"&gt;%q{"just for test"}&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sx"&gt;%q{"just for test"}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;lib 是 gem 的工作目录，代码尽量都放到 lib/目录下。
编写&lt;code&gt;a.rb&lt;/code&gt;&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s2"&gt;"new_gem/version"&lt;/span&gt;

&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;A&lt;/span&gt;
  &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;B&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;say&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;what&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;what&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 shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;git commit &lt;span class="nt"&gt;-am&lt;/span&gt; &lt;span class="s1"&gt;'commit'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;提交成功后生成 gem 包&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;gem build a.gemspec
WARNING: no homepage specified
WARNING: description and summary are identical
Successfully built RubyGem
Name: a
Version: 0.0.1
File: a-0.0.1.gem
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把 gem 包安装到本地&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$sudo&lt;/span&gt; gem &lt;span class="nb"&gt;install &lt;/span&gt;a-0.0.1.gem &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试是否成功&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;irb
irb&lt;span class="o"&gt;(&lt;/span&gt;main&lt;span class="o"&gt;)&lt;/span&gt;:001:0&amp;gt; require &lt;span class="s1"&gt;'a'&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;true
&lt;/span&gt;irb&lt;span class="o"&gt;(&lt;/span&gt;main&lt;span class="o"&gt;)&lt;/span&gt;:002:0&amp;gt; A::B.say&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'hello'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
hello
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; nil
irb&lt;span class="o"&gt;(&lt;/span&gt;main&lt;span class="o"&gt;)&lt;/span&gt;:003:0&amp;gt;quit

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果跟随视频安装报的错误信息是&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ERROR:  While executing gem ... &lt;span class="o"&gt;(&lt;/span&gt;Gem::FilePermissionError&lt;span class="o"&gt;)&lt;/span&gt;
   You don&lt;span class="s1"&gt;'t have write permissions into the /usr/local/lib/ruby/gems/1.9.1 directory.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;要用&lt;code&gt;sudo&lt;/code&gt;命令安装&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$sudo&lt;/span&gt; gem &lt;span class="nb"&gt;install &lt;/span&gt;a-0.0.1.gem &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上说明创建 gem 已经成功，接下来给 gem 创建另一个功能，即：在控制台调用方法输出&lt;/p&gt;

&lt;p&gt;在&lt;code&gt;bin&lt;/code&gt;目录下创建一个&lt;code&gt;say&lt;/code&gt;的普通文件：&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;'a'&lt;/span&gt;
&lt;span class="no"&gt;A&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;say&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;ARGV&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;git commit &lt;span class="nt"&gt;-am&lt;/span&gt; &lt;span class="s1"&gt;'create a  file'&lt;/span&gt;
git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;gem build a.gemspec
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进入 version.rb 修改 gem 版本&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;A&lt;/span&gt;
  &lt;span class="no"&gt;VERSION&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"0.0.2"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来再次创建和安装新版本的 gem&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;gem build a.gemspec 
git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo install &lt;/span&gt;a-0.0.2.gem &lt;span class="nt"&gt;-l&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试是否成功：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;irb
irb&lt;span class="o"&gt;(&lt;/span&gt;main&lt;span class="o"&gt;)&lt;/span&gt;:001:0&amp;gt; require &lt;span class="s1"&gt;'a'&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;成功以后可以再控制台随意输出了&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;say hello
hello
git@git-virtual-machine:~/a&lt;span class="nv"&gt;$ &lt;/span&gt;say hehe
hehe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然你可以把他 push 到 github 上&lt;/p&gt;
&lt;h2 id="参考："&gt;参考：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://railscasts-china.com/episodes/how-to-write-a-gem?autoplay=true" rel="nofollow" target="_blank"&gt;http://railscasts-china.com/episodes/how-to-write-a-gem?autoplay=true&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二：创建engine"&gt;二：创建 engine&lt;/h2&gt;
&lt;p&gt;要创建一个基于 Rails 3.1 的 engine，你需要运行 plugin 创建器并且传递 --full 和 --mountable 给它。要创建初始的“blorgh”engine 你将需要在终端中运行如下命令：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;rails plugin new blorgh &lt;span class="nt"&gt;--full&lt;/span&gt; &lt;span class="nt"&gt;--mountable&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="详见参考："&gt;详见参考：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://guides.ruby-china.org/engines.html" rel="nofollow" target="_blank"&gt;http://guides.ruby-china.org/engines.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>zqalyc</author>
      <pubDate>Tue, 04 Jun 2013 16:04:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/11479</link>
      <guid>https://ruby-china.org/topics/11479</guid>
    </item>
  </channel>
</rss>
