<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>topswim (topswim)</title>
    <link>https://ruby-china.org/topswim</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>有没有类似 public_activity 的 GEM 包推荐</title>
      <description>&lt;p&gt;有没有于 public_activity 类似个 GEM 包推荐？
（public_activity GEM 包简介：Easy activity tracking for your ActiveRecord models. Provides Activity model with details about actions performed by your users, like adding comments, responding etc.）&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Sat, 31 Mar 2018 23:07:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/35373</link>
      <guid>https://ruby-china.org/topics/35373</guid>
    </item>
    <item>
      <title>Rails 部署负载均衡代理</title>
      <description>&lt;p&gt;最近想在我公司两个数据中心做一套 rails 应用的负载均衡，一说到软件负载均衡肯定想到的是 Nginx，所以在网上找到了很多关于 rails + passenger +Nginx 的部署。根据网上教程我在测试环境也完成部署并且可以使用。但是我发现这种部署和我想象不一样，这样部署 Nginx 和 rails 应用好像必须在一个主机上，访问关系是 nginx -&amp;gt;passwenger-&amp;gt;rails。
我的问题是：
1.为什么 Nginx 不能直接负责均衡 rails 请求。
2.因为我公司之前的有用 F5，为什么不能像用 F5 一样，单独安装一台 Nginx 服务器，然后在装一台 rails 服务器，rails 服务器上可以启 N 个端口，然后用 Nginx 服务去负责请求到 rails.
3.如果我现在要实现问题 2 中的功能（一台负载均衡服务器两台应用服务器，Nginx 负载两台应用服务器的服务）。&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Tue, 09 Jan 2018 09:57:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/34855</link>
      <guid>https://ruby-china.org/topics/34855</guid>
    </item>
    <item>
      <title>打开一个页面需要 10 几分钟，求解。</title>
      <description>&lt;p&gt;我的部署环境是：
REDHAT7.2  rails 4.2 中间件是 PUMA 数据库是 ORALCE
应用和数据库是分开在两个机子上，中间有防火墙。&lt;/p&gt;

&lt;p&gt;现在的现象是应用刚启动访问页面很快，但如果应用一段时间没有访问后，再次访问应用打开就很慢要过 10 几分钟才能打开。
日志里也看不出什么问题。
目前我觉得是连接数据库问题，因为我应用和数据库在一个主机的时候没有遇到这样问题。
&lt;img src="https://l.ruby-china.com/photo/2016/1fdedb3fd3141132bdf52bb7217d7181.jpg!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Tue, 23 Aug 2016 14:42:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/30888</link>
      <guid>https://ruby-china.org/topics/30888</guid>
    </item>
    <item>
      <title>如何获取自动登陆一个系统 API 入口？</title>
      <description>&lt;p&gt;我们公司最近有个需求想从 aruba Airwave api 获取数据。对方公司给我提供了一个例子使用 curl 实现的，下面是例子：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-k&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; /tmp/cjar &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"credential_0=admin"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"credential_1=admin"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"destination=/"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"login=Log In"&lt;/span&gt; https://10.162.117.19/LOGIN
curl &lt;span class="nt"&gt;-k&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; /tmp/cjar &lt;span class="nt"&gt;--output&lt;/span&gt; /tmp/ap_detail.xml https://10.162.117.19/ap_detail.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我想用 ruby 实现，于是安装了 Mechanize，但是由于对方服务是 https，我也参照网上例子加了 SSL 设置，代码如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Mechanize&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="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ssl_version&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify_mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"SSLv3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;VERIFY_NONE&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是 get 的时候还会提示：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;OpenSSL::SSL::SSLError: SSL_connect &lt;span class="nv"&gt;returned&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 &lt;span class="nv"&gt;errno&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0 &lt;span class="nv"&gt;state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;SSLv3 &lt;span class="nb"&gt;read &lt;/span&gt;server hello A: sslv3 alert handshake failure
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;请大家帮我看看如何把 curl 版的例子写成 ruby 脚本！！！&lt;/p&gt;

&lt;p&gt;还有问题就是我用&lt;a href="https://github.com/Mechanize%EF%BC%8C%E6%B2%A1%E6%9C%89%E5%88%B6%E5%AE%9ASSL%E7%89%88%E6%9C%AC%E4%BB%80%E4%B9%88%EF%BC%8C%E7%9B%B4%E6%8E%A5%E4%BD%BF%E7%94%A8" rel="nofollow" target="_blank"&gt;https://github.com/Mechanize，没有制定SSL版本什么，直接使用&lt;/a&gt;这个网址测试&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Mechanize&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="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mechanize 就返回了结果。为什么同样是 https 服务，有的就直接可以 get 有的就不行？&lt;/p&gt;

&lt;p&gt;我对 openssl 了解太少啊！希望大家指教！&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Wed, 30 Mar 2016 17:17:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/29510</link>
      <guid>https://ruby-china.org/topics/29510</guid>
    </item>
    <item>
      <title>Rails 中有没有作业调度的框架？</title>
      <description>&lt;p&gt;rails 中有没有作业调度的框架？
sidetiq 我用过了，我想要一个不用重启，把任务可以放在数据库中的调度框架。因为我可能经常要修改我的调度任务。&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Mon, 21 Sep 2015 10:13:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/27415</link>
      <guid>https://ruby-china.org/topics/27415</guid>
    </item>
    <item>
      <title>大家都用的什么云？</title>
      <description>&lt;p&gt;我想搭建在云端自己的网站，看了阿里云，还有亚马逊 S3，大家觉得那个好啊？(我就是自己玩玩所以不想掏太多钱)
还有 railscasts 已经停了很久了，还有什么地方有像 railscasts 一样的易学好用的网站啊！&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Tue, 06 Jan 2015 11:53:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/23569</link>
      <guid>https://ruby-china.org/topics/23569</guid>
    </item>
    <item>
      <title>想快速搭建一个购物网站加社区？</title>
      <description>&lt;p&gt;我想用 rails 快速搭建一个购物网站加社区。最好前端用 bootstrap，代码不要太深奥，可以很快读懂，并上手的？
请大家推荐啊！&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Sun, 07 Dec 2014 20:43:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/23069</link>
      <guid>https://ruby-china.org/topics/23069</guid>
    </item>
    <item>
      <title>RubyMine external Librarires 设置问题！急！</title>
      <description>&lt;p&gt;我已经有一个 rails4.0.3 的 app，现在用 rubymine6.3 打开此工程，rubymine 每次打开此工程都会使用 ruby1.9.1 去作为运行环境！致使我的 rubymine 不能运行此工程！我不知道我的 app 那里指引 rubymine 去加载 1.9 的环境！（我强制设置也没有用）&lt;/p&gt;

&lt;p&gt;说明：
但是我在操作系统下都是用 2.0 作为运行环境！
lius-MacBook-Pro:~ liu$ rvm list&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rvm rubies

   ruby-1.9.2-p320 &lt;span class="o"&gt;[&lt;/span&gt; x86_64 &lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;*&lt;/span&gt; ruby-2.0.0-preview1 &lt;span class="o"&gt;[&lt;/span&gt; x86_64 &lt;span class="o"&gt;]&lt;/span&gt;

&lt;span class="c"&gt;# =&amp;gt; - current&lt;/span&gt;
&lt;span class="c"&gt;# =* - current &amp;amp;&amp;amp; default&lt;/span&gt;
&lt;span class="c"&gt;#  * - default&lt;/span&gt;

lius-MacBook-Pro:~ liucc&lt;span class="nv"&gt;$ &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>topswim</author>
      <pubDate>Sat, 26 Jul 2014 22:10:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/20696</link>
      <guid>https://ruby-china.org/topics/20696</guid>
    </item>
    <item>
      <title>使用 collection_select 多选框报错！急啊！ </title>
      <description>&lt;p&gt;以下是我的代码：
view:&lt;/p&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;
&lt;span class="cp"&gt;&amp;lt;%=&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;collection_select&lt;/span&gt; &lt;span class="ss"&gt;:user_ids&lt;/span&gt;&lt;span class="p"&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;all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:cname&lt;/span&gt;&lt;span class="p"&gt;,{},{&lt;/span&gt;&lt;span class="ss"&gt;multiple: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;model1:&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;IncidentRecord&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;Base&lt;/span&gt;
    &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:incident_record_userships&lt;/span&gt;
    &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:users&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :incident_record_userships&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;model2&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;IncidentRecordUsership&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;Base&lt;/span&gt;
    &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:incident_record&lt;/span&gt;
    &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:user&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;model3&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="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;Base&lt;/span&gt;
    &lt;span class="n"&gt;before_save&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;email&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;before_create&lt;/span&gt; &lt;span class="ss"&gt;:create_remember_token&lt;/span&gt;
    &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:name&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="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;length: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;maximum: &lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:cname&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="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;length: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;maximum: &lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:tel&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="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;length: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;maximum: &lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="no"&gt;VALID_EMAIL_REGEX&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i&lt;/span&gt;
    &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:email&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="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;format: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;with: &lt;/span&gt;&lt;span class="no"&gt;VALID_EMAIL_REGEX&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="ss"&gt;uniqueness: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;case_senstive: &lt;/span&gt;&lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;has_secure_password&lt;/span&gt;
    &lt;span class="n"&gt;validates&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;length: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;minimum: &lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:incident_record_userships&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:incident_records&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :incident_record_userships&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new_remember_token&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;urlsafe_base64&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="no"&gt;Digest&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SHA1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hexdigest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="kp"&gt;private&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_remember_token&lt;/span&gt;
      &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remember_token&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;encrypt&lt;/span&gt;&lt;span class="p"&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;new_remember_token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# Create the token.&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;controller &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;IncidentRecordsController&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationController&lt;/span&gt;
  &lt;span class="n"&gt;before_action&lt;/span&gt; &lt;span class="ss"&gt;:set_incident_record&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;only: &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:show&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:edit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:update&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:destroy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:fix_edit&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

  &lt;span class="c1"&gt;# GET /incident_records&lt;/span&gt;
  &lt;span class="c1"&gt;# GET /incident_records.json&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;
    &lt;span class="vi"&gt;@incident_records&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;IncidentRecord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="c1"&gt;# GET /incident_records/1&lt;/span&gt;
  &lt;span class="c1"&gt;# GET /incident_records/1.json&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;show&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="c1"&gt;# GET /incident_records/new&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;new&lt;/span&gt;
    &lt;span class="vi"&gt;@incident_record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;IncidentRecord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="c1"&gt;# GET /incident_records/1/edit&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;edit&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fix_edit&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="c1"&gt;# POST /incident_records&lt;/span&gt;
  &lt;span class="c1"&gt;# POST /incident_records.json&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create&lt;/span&gt;
    &lt;span class="vi"&gt;@incident_record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;IncidentRecord&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="n"&gt;incident_record_params_new&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="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@incident_record.save&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;js&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="vi"&gt;@incident_record&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;notice: &lt;/span&gt;&lt;span class="s1"&gt;'Incident record was successfully created.'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;js&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;action: &lt;/span&gt;&lt;span class="s1"&gt;'new'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="c1"&gt;# PATCH/PUT /incident_records/1&lt;/span&gt;
  &lt;span class="c1"&gt;# PATCH/PUT /incident_records/1.json&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update&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="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@incident_record.update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;incident_record_params_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nb"&gt;format&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;redirect_to&lt;/span&gt; &lt;span class="vi"&gt;@incident_record&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;notice: &lt;/span&gt;&lt;span class="s1"&gt;'Incident record was successfully updated.'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="ss"&gt;:no_content&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="nb"&gt;format&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;render&lt;/span&gt; &lt;span class="ss"&gt;action: &lt;/span&gt;&lt;span class="s1"&gt;'edit'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;json: &lt;/span&gt;&lt;span class="vi"&gt;@incident_record.errors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;status: :unprocessable_entity&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="c1"&gt;# DELETE /incident_records/1&lt;/span&gt;
  &lt;span class="c1"&gt;# DELETE /incident_records/1.json&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;destroy&lt;/span&gt;
    &lt;span class="vi"&gt;@incident_record.destroy&lt;/span&gt;
    &lt;span class="vi"&gt;@incident_records&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;IncidentRecord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="kp"&gt;private&lt;/span&gt;
    &lt;span class="c1"&gt;# Use callbacks to share common setup or constraints between actions.&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_incident_record&lt;/span&gt;
      &lt;span class="vi"&gt;@incident_record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;IncidentRecord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&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;:id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="c1"&gt;# Never trust parameters from the scary internet, only allow the white list through.&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;incident_record_params_new&lt;/span&gt;
      &lt;span class="nb"&gt;puts&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;:incident_record&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:user_ids&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:incident_record&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;permit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:sms_title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:no&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:host_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:sys_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:incident_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:effect_degree&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:priority&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:incident_time&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:record_user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:come_from&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:customer_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:customer&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;:key_word&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:description&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;:belong_team&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:belong_user&lt;/span&gt;&lt;span class="p"&gt;,{&lt;/span&gt;&lt;span class="ss"&gt;:user_ids&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;:time_out&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;def&lt;/span&gt; &lt;span class="nf"&gt;incident_record_params_fix&lt;/span&gt;
      &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:incident_record&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;permit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:incident_wiki_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:modify&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:solution&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:fixed_time&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:close_code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;表单提交提示：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users is invalid&lt;/li&gt;
&lt;li&gt;Users is invalid&lt;/li&gt;
&lt;li&gt;Users is invalid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;我这个是参考 rails casts 258-token-fields-revised 写的。请大家指教啊！&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Fri, 25 Jul 2014 19:57:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/20683</link>
      <guid>https://ruby-china.org/topics/20683</guid>
    </item>
    <item>
      <title>有没有用 rails 做的知识库管理系统？</title>
      <description>&lt;p&gt;有没有用 rails 做的知识库管理系统？&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Mon, 07 Jul 2014 15:16:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/20352</link>
      <guid>https://ruby-china.org/topics/20352</guid>
    </item>
    <item>
      <title>关于 simple_form I18n 的问题？</title>
      <description>&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;%=&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;input&lt;/span&gt; &lt;span class="ss"&gt;:username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;input_html: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;class: &lt;/span&gt;&lt;span class="s1"&gt;'special'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用 simple_form 后这段代码产生的标签是英文，怎么翻译过来呢？
看了 simple_form 的文档是有/config/locales/simple_form.en.yml，但是我新建中文的 simple_form.zh-cn.yml 如何加载呢？在哪设置？&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Fri, 09 May 2014 09:36:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/19117</link>
      <guid>https://ruby-china.org/topics/19117</guid>
    </item>
    <item>
      <title>使用 oci8 调用存储过程返回值总是 1？急！</title>
      <description>&lt;p&gt;使用 oci8 连接 oracle 数据库，然后调用存储过程返回值总是 1，求解啊！&lt;/p&gt;
&lt;h2 id="plsql.rb: Call PL/SQL procedures and functions"&gt;plsql.rb: Call PL/SQL procedures and functions&lt;/h2&gt;
&lt;p&gt;require 'config.rb'&lt;/p&gt;
&lt;h2 id="Create a connection to Oracle"&gt;Create a connection to Oracle&lt;/h2&gt;
&lt;p&gt;conn = OCI8.new(DB_USER, DB_PASSWORD, DB_SERVER)&lt;/p&gt;

&lt;p&gt;puts 'Get version information from Oracle:'
versions = conn.exec("BEGIN DBMS_UTILITY.db_version(:ver, :comp); END;", 
                        ' '*50, ' '*50)
puts "Oracle DB Version: " + versions[0]
puts "Oracle DB Compatibility: " + versions[1]
puts&lt;/p&gt;

&lt;p&gt;puts 'Call TO_CHAR function:'
bind_vars = conn.exec("BEGIN :str := TO_CHAR(:num, 'FM0999'); END;", 
                        'ABCD', 123)
puts "TO_CHAR input: " + bind_vars[1].to_s
puts "TO_CHAR output: " + bind_vars[0]
puts&lt;/p&gt;

&lt;p&gt;puts 'Get DBMS_OUTPUT:'
conn.exec("BEGIN DBMS_OUTPUT.ENABLE(NULL); END;")
conn.exec("BEGIN DBMS_OUTPUT.put_line('Hello world!'); END;")
conn.exec("BEGIN DBMS_OUTPUT.put_line('Can you see me?'); END;")&lt;/p&gt;

&lt;p&gt;cursor = conn.parse("BEGIN DBMS_OUTPUT.get_line(:line, :status); END;")
cursor.bind_param(':line', nil, String, 255)
cursor.bind_param(':status',Fixnum)&lt;/p&gt;

&lt;p&gt;while true
        cursor.exec
        break if cursor[':status'] == 1
        puts cursor[':line']
end&lt;/p&gt;

&lt;p&gt;puts '-'*80&lt;/p&gt;

&lt;p&gt;原连接
&lt;a href="http://www.oracle.com/technetwork/testcontent/plsql-rb-102591.html?ssSourceSiteId=otncn" rel="nofollow" target="_blank"&gt;http://www.oracle.com/technetwork/testcontent/plsql-rb-102591.html?ssSourceSiteId=otncn&lt;/a&gt;&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Tue, 18 Mar 2014 16:37:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/17974</link>
      <guid>https://ruby-china.org/topics/17974</guid>
    </item>
    <item>
      <title>生成 PDF 中曲线图，柱状图等有什么好的方法？</title>
      <description>&lt;p&gt;我生成 PDF 是用的 Prawn，Prawn 可以画图很专业也很灵活，但是小弟不才画出图不好看，所以想问问大侠有什么专业画图 gem，可以直接给值生成图表的（是要在生成的 PDF 中）。&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Mon, 17 Feb 2014 16:25:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/17311</link>
      <guid>https://ruby-china.org/topics/17311</guid>
    </item>
    <item>
      <title>Rails 数据库编码自动转换</title>
      <description>&lt;p&gt;Rails 默认使用 utf8 编码，而大多数数据库使用本地编码，例如 oracle 数据库多大使用 GBK 编码。所以，在数据库访问时，如何处理两种不同的字符编码是一件很重要的事情。请问大家有什么好的解决方法。&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Fri, 14 Feb 2014 11:34:34 +0800</pubDate>
      <link>https://ruby-china.org/topics/17255</link>
      <guid>https://ruby-china.org/topics/17255</guid>
    </item>
    <item>
      <title>准备使用 MongoDB 两个疑问？</title>
      <description>&lt;p&gt;1.在网上看到这片文章：
&lt;a href="http://www.open-open.com/news/view/198c59b" rel="nofollow" target="_blank"&gt;http://www.open-open.com/news/view/198c59b&lt;/a&gt;
（文章说不应该使用 MongoDB）
很纳闷，我觉得 rubychina 不是用 MongoDB。挺好的啊。
2.使用 rails 连接 MongoDB，是用 MongoMapper 好还是 Mongoid？有很大不同吗？&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Sat, 08 Feb 2014 22:30:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/17126</link>
      <guid>https://ruby-china.org/topics/17126</guid>
    </item>
    <item>
      <title>有没有用 rails 写的 IT Operations Management?</title>
      <description>&lt;p&gt;有没有用 rails 写的 IT Operations Management，开源的。&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Tue, 07 Jan 2014 21:47:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/16682</link>
      <guid>https://ruby-china.org/topics/16682</guid>
    </item>
    <item>
      <title>那位大侠用过 Sidekiq？</title>
      <description>&lt;p&gt;我的类如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;GetDataWorker&lt;/span&gt;
  &lt;span class="c1"&gt;# To change this template use File | Settings | File Templates.&lt;/span&gt;
  &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;Sidekiq&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Worker&lt;/span&gt;
  &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;Sidetiq&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Schedulable&lt;/span&gt;

  &lt;span class="n"&gt;recurrence&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;minutely&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;perform&lt;/span&gt;
    &lt;span class="c1"&gt;# do stuff ...&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="no"&gt;CicsasNum&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="nf"&gt;get_cicsas_num&lt;/span&gt;
    &lt;span class="no"&gt;InformixDbsSpace&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="nf"&gt;get_db_space&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; bundle &lt;span class="nb"&gt;exec &lt;/span&gt;sidekiq
/Users/liucc/.rvm/gems/ruby-1.9.2-p320/gems/actionpack-3.2.12/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant PDF
undefined method &lt;span class="sb"&gt;`&lt;/span&gt;recurrence&lt;span class="s1"&gt;' for GetDataWorker:Class
/Users/liucc/omm/app/workers/get_data_worker.rb:6:in `&amp;lt;class:GetDataWorker&amp;gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;recurrence 这个方法怎么找不到啊？&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Mon, 25 Nov 2013 15:47:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/15777</link>
      <guid>https://ruby-china.org/topics/15777</guid>
    </item>
    <item>
      <title>有没有用过 fusioncharts？</title>
      <description>&lt;p&gt;fusioncharts 文档是 RAILS2.0
不知道 rails3.2 怎么部署文件啊？&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Tue, 12 Nov 2013 23:12:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/15495</link>
      <guid>https://ruby-china.org/topics/15495</guid>
    </item>
    <item>
      <title>ruby 读取文件写入 mysql 数据库后没有换行符</title>
      <description>&lt;p&gt;我用 ruby 读取文件写入 mysql 数据库，在页面上展现此数据的时候没有换行符。
我用的 IO.read(filename)
请大家帮助。&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Sun, 20 Oct 2013 15:23:23 +0800</pubDate>
      <link>https://ruby-china.org/topics/14880</link>
      <guid>https://ruby-china.org/topics/14880</guid>
    </item>
    <item>
      <title>关于 PDFkit 做中间件无法生成 PDF 的问题</title>
      <description>&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-MacBook-Pro&lt;/span&gt;:omm&lt;span class="nv"&gt;$ &lt;/span&gt;rake middleware
use ActionDispatch::Static
use Rack::Lock
use &lt;span class="c"&gt;#&amp;lt;ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007ff73cdd4358&amp;gt;&lt;/span&gt;
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
use ActionDispatch::RemoteIp
use ActionDispatch::Reloader
use ActionDispatch::Callbacks
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use ActionDispatch::Head
use Rack::ConditionalGet
use Rack::ETag
use ActionDispatch::BestStandardsSupport
use PDFKit::Middleware
run Omm::Application.routes
l-MacBook-Pro:omm l&lt;span class="nv"&gt;$ &lt;/span&gt;thin strat
Unknown &lt;span class="nb"&gt;command&lt;/span&gt;: strat. Use one of start, stop, restart, config
lius-MacBook-Pro:omm liucc&lt;span class="nv"&gt;$ &lt;/span&gt;thin start
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Using rack adapter
/Users/liucc/.rvm/gems/ruby-1.9.2-p320/gems/actionpack-3.2.12/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant PDF
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Thin web server &lt;span class="o"&gt;(&lt;/span&gt;v1.5.1 codename Straight Razor&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Maximum connections &lt;span class="nb"&gt;set &lt;/span&gt;to 1024
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Listening on 0.0.0.0:3000, CTRL+C to stop
^C&amp;gt;&amp;gt; Stopping ...
l-MacBook-Pro:omm l&lt;span class="nv"&gt;$ &lt;/span&gt;thin start
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Using rack adapter
/Users/liucc/.rvm/gems/ruby-1.9.2-p320/gems/actionpack-3.2.12/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant PDF
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Thin web server &lt;span class="o"&gt;(&lt;/span&gt;v1.5.1 codename Straight Razor&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Maximum connections &lt;span class="nb"&gt;set &lt;/span&gt;to 1024
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Listening on 0.0.0.0:3000, CTRL+C to stop
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;提交后浏览器一直是读取状态，后台进程也调起，但是无法最后显示。&lt;/p&gt;</description>
      <author>topswim</author>
      <pubDate>Wed, 16 Oct 2013 23:34:56 +0800</pubDate>
      <link>https://ruby-china.org/topics/14805</link>
      <guid>https://ruby-china.org/topics/14805</guid>
    </item>
  </channel>
</rss>
