<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>liukai (刘凯)</title>
    <link>https://ruby-china.org/liukai</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>Rake 简介与编写</title>
      <description>&lt;h2 id="rake简介"&gt;rake 简介&lt;/h2&gt;
&lt;p&gt;Rake 的意思是 Ruby Make，一个用 ruby 开发的代码构建工具。&lt;/p&gt;

&lt;p&gt;1.以任务的方式创建和运行脚本
    当然，你可以用脚本来创建每一个你希望自动运行的任务。但是，对于大型的应用来说，你几乎总是需要为数据库迁移 (比如 Rails 中 db:migrate 任务)、清空缓存、或者代码维护等等编写脚本。对于每一项任务，你可能都需要写若干脚本，这会让你的管理变得复杂。那么，把它们用任务的方式整理到一起，会让管理变得轻松很多。&lt;/p&gt;

&lt;p&gt;2.追踪和管理任务之间的依赖
    Rake 还提供了轻松管理任务之间依赖的方式。比如，"migrate"任务和"schema:dump"任务都依赖于 "connect_to_database"任务，那么在"migrate"任务调用之前，"connect_to_database"任务都会被执行。&lt;/p&gt;
&lt;h2 id="rake的编写"&gt;rake 的编写&lt;/h2&gt;
&lt;p&gt;首先 rake 文件的后缀是.rake，存放在 lib/tasks 文件夹下。
可以通过 rake --tasks 来查看当前程序下所已存在的 rake 脚本。
看下面这个例子：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"study rake about rails"&lt;/span&gt;    &lt;span class="c1"&gt;#desc 是Rake定义的方法,表示对下面定义任务的描述.这个描述会在使用Rake --tasks(或者Rake -T)命令时输出在屏幕上.&lt;/span&gt;
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:study_rake&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;         &lt;span class="c1"&gt;#cmd 命令行中执行 rake study_rake 开始执行脚本，task是Rake最重要的方法.它的方法定义是:task(args, &amp;amp;block).任务体是一个block。&lt;/span&gt;
  &lt;span class="sx"&gt;%w(a b c)&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;   &lt;span class="c1"&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;这就是创建了一个 rake 脚本，这个脚本的作用是循环遍历 ["a", "b", "c"] 这个数组。&lt;/p&gt;
&lt;h2 id="依赖关系和命名空间"&gt;依赖关系和命名空间&lt;/h2&gt;
&lt;p&gt;依赖关系&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"rake1"&lt;/span&gt;   
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:rake1&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;   
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"rake1"&lt;/span&gt;   
&lt;span class="k"&gt;end&lt;/span&gt;   

&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"rake2"&lt;/span&gt;   
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;rake2&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:rake1&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;   
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"rake2"&lt;/span&gt;   
&lt;span class="k"&gt;end&lt;/span&gt;  

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输出结果：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;rake1&lt;/span&gt;
&lt;span class="n"&gt;rake2&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;namespace&lt;/span&gt; &lt;span class="ss"&gt;:today&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"rake1"&lt;/span&gt;   
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:rake1&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;   
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"rake1"&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;那执行命令就是：rake today:rake1&lt;/p&gt;

&lt;p&gt;在一个任务中调用另外一个任务&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"today rake"&lt;/span&gt;   
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:today&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;   
  &lt;span class="no"&gt;Rake&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"rakes:rake1"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;
  &lt;span class="no"&gt;Rake&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"rakes:rake2"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;
  &lt;span class="no"&gt;Rake&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"rakes:rake3"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;  
&lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="ss"&gt;:rakes&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"rake1"&lt;/span&gt;   
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:rake1&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;   
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"rake1"&lt;/span&gt;   
&lt;span class="k"&gt;end&lt;/span&gt;  
&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"rake2"&lt;/span&gt;   
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:rake2&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;   
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"rake2"&lt;/span&gt;   
&lt;span class="k"&gt;end&lt;/span&gt;  
&lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="s2"&gt;"rake3"&lt;/span&gt;   
&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:rake3&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;   
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"rake3"&lt;/span&gt;   
&lt;span class="k"&gt;end&lt;/span&gt;  
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认任务&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:default&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:today&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="Rails中的Rake任务"&gt;Rails 中的 Rake 任务&lt;/h2&gt;
&lt;p&gt;Rails 预定义了大量的 Rake 任务，在 Rails 应用的开发过程中，你想必已经在大量使用它们了。在 Rails 中，所有的 Rake 任务都放在 rails 目录的 lib/tasks 目录下 (在作者的环境下是 C:\Ruby\lib\ruby\gems\1.8\gems\rails-2.3.5 \lib\tasks),所有的 rake 任务都以.rake 作为后缀名，这些以.rake 结尾的文件会被自动加载到你的环境中。你可以到一个已有的 Rails 工程根目录下键入 rake --tasks，可以看到很多的 rake 任务已经为你整装待发了。&lt;/p&gt;

&lt;p&gt;E.  参考资料
&lt;a href="http://blog.sina.com.cn/s/blog_4748c4d20100y9iu.html" rel="nofollow" target="_blank"&gt;http://blog.sina.com.cn/s/blog_4748c4d20100y9iu.html&lt;/a&gt;&lt;/p&gt;</description>
      <author>liukai</author>
      <pubDate>Tue, 27 Oct 2015 17:12:34 +0800</pubDate>
      <link>https://ruby-china.org/topics/27846</link>
      <guid>https://ruby-china.org/topics/27846</guid>
    </item>
    <item>
      <title>Ubuntu + Passenger + Apache 部署 Ruby on Rails</title>
      <description>&lt;h3 id="创建账号"&gt;创建账号&lt;/h3&gt;
&lt;p&gt;假设你已经用 root 帐号通过 SSH 登陆服务器。
出于安全考虑，不要使用 root 帐号运行 web 应用。这里新建一个专门用于部署的用户，例如 deploy 或者其它你喜欢的名字。运行以下命令创建用户：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useradd -m -s /bin/bash deploy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将用户加入 sudo 群组，以便使用 sudo 命令：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adduser deploy sudo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;为 deploy 用户设置密码：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;passwd deploy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;退出当前 SSH 链接，用 deploy 帐号重新登陆。&lt;/p&gt;
&lt;h3 id="安装 RVM 和 Ruby"&gt;安装 RVM 和 Ruby&lt;/h3&gt;
&lt;p&gt;更新 apt，并安装 curl：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install curl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后安装 RVM：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ \curl -sSL https://get.rvm.io | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;RVM 安装完毕后，重新登陆 SSH，让 RVM 配置生效。然后安装 Ruby 2.0.0：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ rvm use --install --default 2.0.0
$ rvm use 2.1.2@your_gemset --create --default
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ruby 安装过程会请求 apt-get update 的权限，并自动安装系统依赖。安装完毕后，确认目前的 Ruby 版本：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ruby -v
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="安装 Passenger"&gt;安装 Passenger&lt;/h3&gt;
&lt;p&gt;Passenger 是一个 app server，支持基于 Rack 框架的 Ruby app（包括 Rails）。Passenger 的特点是需要作为模块编译到 Nginx 中，优点是配置简单，不需要自己写启动脚本。
安装 Passenger 最简单的方法是通过 apt 安装，首先导入 Passenger 的密钥（官方文档）：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装 apt 插件以支持 https 传输：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install apt-transport-https ca-certificates
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加 apt 源（对应 Ubuntu 12.04 LTS）：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo bash -c 'echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger precise main" &amp;gt; /etc/apt/sources.list.d/passenger.list'
$ sudo apt-get update
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装 Passenger 的包：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo apt-get install nginx-extras passenger    **这一步，我换了apache，所以这一步，搭建apache的朋友可以绕过，根据这个链接继续：https://github.com/ruby-china/ruby-china/wiki/Ubuntu-12.04-%E4%B8%8A%E4%BD%BF%E7%94%A8-Nginx-Passenger-%E9%83%A8%E7%BD%B2-Ruby-on-Rails**

sudo gem install passenger
sudo  passenger-install-apache2-module  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果没有满足不要的包依赖关系，第二条命令会提示你需要安装些什么。&lt;/p&gt;

&lt;p&gt;例如：&lt;/p&gt;

&lt;p&gt;This installer will guide you through the entire installation process. It&lt;br&gt;
shouldn't take more than 3 minutes in total.  &lt;/p&gt;

&lt;p&gt;Here's what you can expect from the installation process:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Apache 2 module will be installed for you.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;You'll learn how to configure Apache.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;You'll learn how to deploy a Ruby on Rails application.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't worry if anything goes wrong. This installer will advise you on how to&lt;br&gt;
solve any problems.  &lt;/p&gt;

&lt;p&gt;Press Enter to continue, or Ctrl-C to abort. &lt;/p&gt;

&lt;p&gt;按照提示一步一步进行，我缺少 apache2-perfork-dev,libapr1-dev,libaprutil1-dev 这几个包。
这个 sudo  passenger-install-apache2-module  命令多执行几次，直到配置完成。
你也可以执行命令：sudo apt-get install apache2-prefork-dev libapr1-dev libaprutil1-dev  来完成安装。
最后会提示你配置的模块内容：
Please edit your Apache configuration file, and add these lines:&lt;/p&gt;
&lt;pre class="highlight apache"&gt;&lt;code&gt;&lt;span class="nc"&gt;LoadModule&lt;/span&gt; passenger_module /home/liukai/.rvm/gems/ruby-2.0.0-p645@your_gemset/gems/passenger-5.0.10/buildout/apache2/mod_passenger.so
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nl"&gt;IfModule&lt;/span&gt;&lt;span class="sr"&gt; mod_passenger.c&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;
&lt;/span&gt;  PassengerRoot /home/liukai/.rvm/gems/ruby-2.0.0-p645@your_gemset/gems/passenger-5.0.10
  PassengerDefaultRuby /home/liukai/.rvm/gems/ruby-2.0.0-p645@your_gemset/wrappers/ruby
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nl"&gt;IfModule&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
将中间一段配置到 apache 的配置文件中。（这是我的配置文件位置：/etc/apache2/apache2.conf）&lt;/p&gt;
&lt;h3 id="部署rails应用"&gt;部署 rails 应用&lt;/h3&gt;
&lt;p&gt;配置 apache 的 VirtualHost 信息：&lt;/p&gt;
&lt;pre class="highlight apache"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nl"&gt;VirtualHost&lt;/span&gt;&lt;span class="sr"&gt; *:80&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;
&lt;/span&gt;     &lt;span class="nc"&gt;ServerName&lt;/span&gt; www.yourhost.com
     &lt;span class="c"&gt;# !!! Be sure to point DocumentRoot to 'public'!&lt;/span&gt;
     &lt;span class="nc"&gt;DocumentRoot&lt;/span&gt; /somewhere/public
     RailsEnv development  &lt;span class="c"&gt;#这句很重要，否则会报错We're sorry,but something went wrong!"&lt;/span&gt;
     &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nl"&gt;Directory&lt;/span&gt;&lt;span class="sr"&gt; /somewhere/public&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="c"&gt;# This relaxes Apache security settings.&lt;/span&gt;
        &lt;span class="nc"&gt;AllowOverride&lt;/span&gt; &lt;span class="ss"&gt;all&lt;/span&gt;
        &lt;span class="c"&gt;# MultiViews must be turned off.&lt;/span&gt;
        &lt;span class="nc"&gt;Options&lt;/span&gt; -MultiViews
        &lt;span class="c"&gt;# Uncomment this if you're on Apache &amp;gt;= 2.4:&lt;/span&gt;
        &lt;span class="c"&gt;#Require all granted&lt;/span&gt;
     &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nl"&gt;Directory&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nl"&gt;VirtualHost&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改网站根目录：
1、在终端窗口中输入"sudo vi /etc/apache2/apache2.conf"--&amp;gt;回车--&amp;gt;找到""的位置--&amp;gt;更改" /somewhere/public"为新的根目录就可以了。
2、在终端窗口中输入"sudo vi /etc/apache2/sites-available/000-default.conf"--&amp;gt;回车--&amp;gt;找到"DocumentRoot /var/www/html"的位置--&amp;gt;更改" /somewhere/public"为新的根目录。&lt;/p&gt;

&lt;p&gt;编辑本地的 hosts 文件：
  ubuntu：/etc/hosts
  windowns:   c:\windows\system32\drivers\etc\
加上一句：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;127.0.0.1 www.yourhost.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重新 apache：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo service apache2 restart
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="安装mysql服务器"&gt;安装 mysql 服务器&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt-get install mysql-server
apt-get install mysql-client
apt-get install libmysqlclient15-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启动本地的 mysql 服务器&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;service mysqld start
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="设置gem source（国内还是设置一下吧）"&gt;设置 gem source（国内还是设置一下吧）&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="参考资料"&gt;参考资料&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/ruby-china/ruby-china/wiki/Ubuntu-12.04-%E4%B8%8A%E4%BD%BF%E7%94%A8-Nginx-Passenger-%E9%83%A8%E7%BD%B2-Ruby-on-RailsUbuntu" rel="nofollow" target="_blank"&gt;https://github.com/ruby-china/ruby-china/wiki/Ubuntu-12.04-%E4%B8%8A%E4%BD%BF%E7%94%A8-Nginx-Passenger-%E9%83%A8%E7%BD%B2-Ruby-on-RailsUbuntu&lt;/a&gt;（12.04 上使用 Nginx Passenger 部署 Ruby on Rails）
&lt;a href="http://blog.csdn.net/hetuo198881/article/details/8689007" rel="nofollow" target="_blank"&gt;http://blog.csdn.net/hetuo198881/article/details/8689007&lt;/a&gt;
&lt;a href="http://www.linuxidc.com/Linux/2012-12/75230p2.htm" rel="nofollow" target="_blank"&gt;http://www.linuxidc.com/Linux/2012-12/75230p2.htm&lt;/a&gt;
&lt;a href="https://github.com/ruby-china/ruby-china/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85-Rails-%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83" rel="nofollow" target="_blank"&gt;https://github.com/ruby-china/ruby-china/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85-Rails-%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83&lt;/a&gt;&lt;/p&gt;</description>
      <author>liukai</author>
      <pubDate>Thu, 25 Jun 2015 17:52:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/26185</link>
      <guid>https://ruby-china.org/topics/26185</guid>
    </item>
  </channel>
</rss>
