<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>qq2729877005 (欧阳95)</title>
    <link>https://ruby-china.org/qq2729877005</link>
    <description>低级码农</description>
    <language>en-us</language>
    <item>
      <title>一直没弄懂的一个地方，String === String 恒返回 false？</title>
      <description>&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2019/55507717-401d-4d62-91c3-726373dbcb31.png!large" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2019/6f38fc76-cb73-4cba-8248-f725592c7bf9.png!large" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2019/5373a0ca-5ff1-41ab-977a-4c20c3933660.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;如图，这个东西一直没弄明白，也尝试去看了下 === 和 == 的实现，但无奈，c 语言水平问题，没看明白，只能发帖求助了&lt;img title=":joy:" alt="😂" src="https://twemoji.ruby-china.com/2/svg/1f602.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Thu, 10 Oct 2019 18:07:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/39134</link>
      <guid>https://ruby-china.org/topics/39134</guid>
    </item>
    <item>
      <title>辞旧迎新，祝大家猪年大吉，金猪满怀！！！</title>
      <description>&lt;p&gt;狗年将逝，猪年已临。祝全体成员，除夕快乐，猪年腾飞，心想事成&lt;img title=":tada:" alt="🎉" src="https://twemoji.ruby-china.com/2/svg/1f389.svg" class="twemoji"&gt; &lt;img title=":confetti_ball:" alt="🎊" src="https://twemoji.ruby-china.com/2/svg/1f38a.svg" class="twemoji"&gt; &lt;img title=":tada:" alt="🎉" src="https://twemoji.ruby-china.com/2/svg/1f389.svg" class="twemoji"&gt; &lt;img title=":beers:" alt="🍻" src="https://twemoji.ruby-china.com/2/svg/1f37b.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Mon, 04 Feb 2019 18:01:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/38087</link>
      <guid>https://ruby-china.org/topics/38087</guid>
    </item>
    <item>
      <title>validate 和 callback 为什么都被包含在事务中了？？？</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;User&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
  &lt;span class="o"&gt;...&lt;/span&gt;
  &lt;span class="n"&gt;validate&lt;/span&gt; &lt;span class="ss"&gt;:test1&lt;/span&gt;
  &lt;span class="o"&gt;...&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;test1&lt;/span&gt;
      &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;debug&lt;/span&gt; &lt;span class="s2"&gt;"=============== 测试 validate 是否被包含在事务中 ==============="&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;### rails consle 调试信息：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Running via Spring preloader &lt;span class="k"&gt;in &lt;/span&gt;process 20000
Loading development environment &lt;span class="o"&gt;(&lt;/span&gt;Rails 5.0.0.1&lt;span class="o"&gt;)&lt;/span&gt;
irb&lt;span class="o"&gt;(&lt;/span&gt;main&lt;span class="o"&gt;)&lt;/span&gt;:001:0&amp;gt; User.create
   &lt;span class="o"&gt;(&lt;/span&gt;0.1ms&lt;span class="o"&gt;)&lt;/span&gt;  begin transaction
  User Exists &lt;span class="o"&gt;(&lt;/span&gt;0.1ms&lt;span class="o"&gt;)&lt;/span&gt;  SELECT  1 AS one FROM &lt;span class="s2"&gt;"users"&lt;/span&gt; WHERE &lt;span class="s2"&gt;"users"&lt;/span&gt;.&lt;span class="s2"&gt;"email"&lt;/span&gt; IS NULL LIMIT ?  &lt;span class="o"&gt;[[&lt;/span&gt;&lt;span class="s2"&gt;"LIMIT"&lt;/span&gt;, 1]]
&lt;span class="o"&gt;===============&lt;/span&gt; 测试 validate 是否被包含在事务中 &lt;span class="o"&gt;===============&lt;/span&gt;
   &lt;span class="o"&gt;(&lt;/span&gt;0.1ms&lt;span class="o"&gt;)&lt;/span&gt;  rollback transaction
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;#&amp;lt;User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil, password_digest: nil, remember_digest: nil, admin: false, activation_digest: nil, activated: false, activated_at: nil, reset_digest: nil, reset_sent_at: nil&amp;gt;&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; 
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="问题"&gt;问题&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;回调&lt;/code&gt; 这个理应包含在事务中，但为什么要 &lt;code&gt;验证&lt;/code&gt; 也要包含在事务中。在《rails tutorial》一书中，有如下一段代码：&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;Micropost&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
  &lt;span class="o"&gt;...&lt;/span&gt;
  &lt;span class="n"&gt;validate&lt;/span&gt; &lt;span class="ss"&gt;:picture_size&lt;/span&gt;

  &lt;span class="kp"&gt;private&lt;/span&gt;
    &lt;span class="c1"&gt;# 验证上传的图像大小&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;picture_size&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;picture&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;megabytes&lt;/span&gt;
        &lt;span class="n"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:picture&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"should be less than 5MB"&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;/code&gt;&lt;/pre&gt;
&lt;p&gt;像这种 &lt;code&gt;picture_size&lt;/code&gt; 验证，理应在事务外的。同样，实际项目中里的 model 也有许多 &lt;code&gt;验证&lt;/code&gt; 没必要放在事务中的，那为什么 rails 却这么做了？？？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Wed, 19 Dec 2018 16:21:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/37919</link>
      <guid>https://ruby-china.org/topics/37919</guid>
    </item>
    <item>
      <title>怎么在 Sidekiq 中查看程序调用链？</title>
      <description>&lt;p&gt;在 rails 中，我可以通过 beybug，然后使用 where 查看程序的调用链。&lt;br&gt;
但在 sidekiq 要怎么做？&lt;img title=":joy:" alt="😂" src="https://twemoji.ruby-china.com/2/svg/1f602.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Thu, 06 Dec 2018 20:04:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/37867</link>
      <guid>https://ruby-china.org/topics/37867</guid>
    </item>
    <item>
      <title>十分钟邮箱，解析域名，查不到它的 MX 记录，但神奇的是它确实能接受到邮件</title>
      <description>&lt;p&gt;一个比较有名的十分钟邮箱服务网站：&lt;a href="http://mail.bccto.me/" rel="nofollow" target="_blank"&gt;http://mail.bccto.me/&lt;/a&gt;&lt;br&gt;
打开这个网站，选择 mail.bccto.me 后缀，申请一个十分钟邮箱&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;'resolv'&lt;/span&gt;

&lt;span class="c1"&gt;# 返回 []&lt;/span&gt;
&lt;span class="no"&gt;Resolv&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;DNS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&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;dns&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;dns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getresources&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'mail.bccto.me'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;Resolv&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;DNS&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Resource&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;IN&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;MX&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;p&gt;解析该域名，查不到 MX 记录，讲道理，不是应该说明这域名没开启邮件服务吗？&lt;br&gt;
但我使用 qq 邮箱给这个网站申请的邮箱发邮件，又确实能收到，怎么情况，它是怎么实现的？？？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Thu, 06 Sep 2018 11:55:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/37448</link>
      <guid>https://ruby-china.org/topics/37448</guid>
    </item>
    <item>
      <title>关于 CSS 样式表的层级嵌套问题</title>
      <description>&lt;p&gt;众所周知，一个大型的网站，一般都有一套自己的全局共用 css 样式表，而且样式还贼多，而这种样式表的层级嵌套要怎么设计最适合？三层嵌套，四层嵌套，还是更多级的嵌套？多级嵌套是好，能划分的更仔细，但势必影响使用，而浅层嵌套虽然更利于使用，但区分度又没有多级的强。有粗浅的用过 boostrap 和 semantic 两套前端框架，似乎 bootsrap 的样式嵌套比 semantic 浅些。&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Thu, 30 Aug 2018 10:34:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/37411</link>
      <guid>https://ruby-china.org/topics/37411</guid>
    </item>
    <item>
      <title>求书，Ruby 元编程第二版中文电子版，最好 PDF，不要扫描版，我愿意购买！！！！！！！</title>
      <description>&lt;p&gt;如题，百度大半天，下了 n 多本，结果全是扫描版的。最后，找了个英文原版的，但阅读实在费劲，毕竟这是一本技术书籍，不是小说，不仅要看的明白，最起码还得理解才行，因此，只能来社区求助了&lt;img title=":joy:" alt="😂" src="https://twemoji.ruby-china.com/2/svg/1f602.svg" class="twemoji"&gt; &lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt; &lt;img title=":cry:" alt="😢" src="https://twemoji.ruby-china.com/2/svg/1f622.svg" class="twemoji"&gt; &lt;img title=":disappointed_relieved:" alt="😥" src="https://twemoji.ruby-china.com/2/svg/1f625.svg" class="twemoji"&gt; &lt;img title=":cold_sweat:" alt="😰" src="https://twemoji.ruby-china.com/2/svg/1f630.svg" class="twemoji"&gt; &lt;img title=":crying_cat_face:" alt="😿" src="https://twemoji.ruby-china.com/2/svg/1f63f.svg" class="twemoji"&gt; &lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt; &lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt; &lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Sat, 28 Jul 2018 19:06:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/37244</link>
      <guid>https://ruby-china.org/topics/37244</guid>
    </item>
    <item>
      <title>关于 application.rb 文件里的 config 对象？？？</title>
      <description>&lt;p&gt;在 application.rb 文件里的 cofing 对象是什么时候被实例化出来的？？？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Thu, 19 Jul 2018 10:45:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/37190</link>
      <guid>https://ruby-china.org/topics/37190</guid>
    </item>
    <item>
      <title>Unicorn 跑项目，怎么将日志信息输出到终端？？？</title>
      <description>&lt;p&gt;之前都是用 rails server 跑的，全部日志都会输出到同一个终端下，调试起来很方便。现在改用 unicorn，但日志输出在文件里了，虽然可以使用 tail 命令让日志在控制台显示，但不是在同一个终端窗口下，调试起来极不方便，要怎样才能让日志输在在同一个终端上呢？？？？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Tue, 17 Jul 2018 10:40:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/37173</link>
      <guid>https://ruby-china.org/topics/37173</guid>
    </item>
    <item>
      <title>用 VScode 撸 Rails，有什么好的插件？</title>
      <description>&lt;p&gt;类似代码提示的这种有吗？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Sun, 15 Jul 2018 14:20:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/37159</link>
      <guid>https://ruby-china.org/topics/37159</guid>
    </item>
    <item>
      <title>Rails 配置的问题，请指教</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;action_controller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;raise_on_unfiltered_parameters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个配置位于 config/initializers/new_framework_defaults.rb 文件，默认值是 true，但启动服务后访问应用报错（如下），改为 false 才正常，这个配置具体作用是干什么的？有没有文档提供一下？为什么会出现这种错误？我使用的 Rails 版本是 5.0.0.1，Ruby 版本是 2.3.7。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="mi"&gt;2018&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mo"&gt;07&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mo"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;0800&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Rack&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="ss"&gt;error: &lt;/span&gt;&lt;span class="c1"&gt;#&amp;lt;RuntimeError: Invalid option key: raise_on_unfiltered_parameters=&amp;gt;&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionpack&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;action_controller&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;railtie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;59&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`block (3 levels) in &amp;lt;class:Railtie&amp;gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/railtie.rb:54:in `&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/railtie.rb:54:in `block (2 levels) in &amp;lt;class:Railtie&amp;gt;'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;activesupport&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;active_support&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lazy_load_hooks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;38&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`instance_eval'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:38:in `&lt;/span&gt;&lt;span class="n"&gt;execute_hook&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;activesupport&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;active_support&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lazy_load_hooks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;44&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`each'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:44:in `&lt;/span&gt;&lt;span class="n"&gt;run_load_hooks&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/base.rb:263:in `&amp;lt;class:Base&amp;gt;'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionpack&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;action_controller&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;164&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`&amp;lt;module:ActionController&amp;gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/base.rb:5:in `&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;top&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;required&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;activesupport&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;active_support&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dependencies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;293&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`block in require'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `&lt;/span&gt;&lt;span class="n"&gt;load_dependency&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionpack&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;action_dispatch&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;middleware&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;static&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;77&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`ext'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/static.rb:33:in `&lt;/span&gt;&lt;span class="n"&gt;match?&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/static.rb:130:in `call'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rack&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rack&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sendfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;111&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`call'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb:522:in `&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/puma-3.4.0/lib/puma/configuration.rb:224:in `call'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;puma&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;3.4&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;puma&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;569&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`handle_request'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/puma-3.4.0/lib/puma/server.rb:406:in `&lt;/span&gt;&lt;span class="n"&gt;process_client&lt;/span&gt;&lt;span class="s1"&gt;'
/home/ouge/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/puma-3.4.0/lib/puma/server.rb:271:in `block in run'&lt;/span&gt;
&lt;span class="sr"&gt;/home/ou&lt;/span&gt;&lt;span class="n"&gt;ge&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;versions&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;puma&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;3.4&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;puma&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;thread_pool&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;114&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`block in spawn_thread'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Mon, 02 Jul 2018 12:11:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/37076</link>
      <guid>https://ruby-china.org/topics/37076</guid>
    </item>
    <item>
      <title>Gemfile 文件的细节问题</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'rails'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'~&amp;gt; 5.0.0'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'&amp;gt;= 5.0.0.1'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 Rails 教程中看到：“ ~&amp;gt;  ”的意思是只安装补丁版本号变化的版本，“ &amp;gt;= ”符号的意思是始终安装最新版，而 Rails new 的新项目中的 gemfile 文件如上图，什么意思，到底是安装最新版还是次版本更新？&lt;img title=":sweat_smile:" alt="😅" src="https://twemoji.ruby-china.com/2/svg/1f605.svg" class="twemoji"&gt; &lt;img title=":sweat_smile:" alt="😅" src="https://twemoji.ruby-china.com/2/svg/1f605.svg" class="twemoji"&gt; &lt;img title=":sweat_smile:" alt="😅" src="https://twemoji.ruby-china.com/2/svg/1f605.svg" class="twemoji"&gt; 
&lt;img src="https://l.ruby-china.com/photo/2018/cbeca224-6914-49bd-885d-1946b89994ac.png!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Sun, 01 Jul 2018 16:59:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/37075</link>
      <guid>https://ruby-china.org/topics/37075</guid>
    </item>
    <item>
      <title>使用 rbenv 安装 Ruby 2.1.10 报错！！！(已解决)</title>
      <description>&lt;p&gt;今天改用 deepin，安装环境时，在安装 ruby 卡住了，搞了半天都没解决，只能来求助了。&lt;/p&gt;

&lt;p&gt;换回之前使用的 Ubuntu16.04 安装这个版本也报错&lt;/p&gt;

&lt;p&gt;日志文件&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;compiling ossl_x509store.c
In file included from ossl.h:58:0,
                 from ossl_x509store.c:11:
/usr/include/openssl/asn1_mac.h:10:2: error: &lt;span class="c"&gt;#error "This file is obsolete; please update your software."&lt;/span&gt;
 &lt;span class="c"&gt;#error "This file is obsolete; please update your software."&lt;/span&gt;
  ^~~~~
In file included from ossl.h:219:0,
                 from ossl_x509store.c:11:
openssl_missing.h:79:35: error: macro &lt;span class="s2"&gt;"EVP_MD_CTX_create"&lt;/span&gt; passed 1 arguments, but takes just 0
 EVP_MD_CTX &lt;span class="k"&gt;*&lt;/span&gt;EVP_MD_CTX_create&lt;span class="o"&gt;(&lt;/span&gt;void&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                                   ^
In file included from /usr/include/openssl/x509.h:23:0,
                 from /usr/include/openssl/x509v3.h:14,
                 from ossl.h:59,
                 from ossl_x509store.c:11:
openssl_missing.h:83:6: error: expected declaration specifiers or ‘...’ before ‘&lt;span class="o"&gt;(&lt;/span&gt;’ token
 void EVP_MD_CTX_init&lt;span class="o"&gt;(&lt;/span&gt;EVP_MD_CTX &lt;span class="k"&gt;*&lt;/span&gt;ctx&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      ^
openssl_missing.h:91:6: error: expected declaration specifiers or ‘...’ before ‘&lt;span class="o"&gt;(&lt;/span&gt;’ token
 void EVP_MD_CTX_destroy&lt;span class="o"&gt;(&lt;/span&gt;EVP_MD_CTX &lt;span class="k"&gt;*&lt;/span&gt;ctx&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      ^
In file included from ossl.h:233:0,
                 from ossl_x509store.c:11:
ossl_pkey.h:43:5: warning: this use of &lt;span class="s2"&gt;"defined"&lt;/span&gt; may not be portable &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wexpansion-to-defined&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
 &lt;span class="c"&gt;#if HAVE_BN_GENCB&lt;/span&gt;
     ^~~~~~~~~~~~~
ossl_pkey.h:43:5: warning: this use of &lt;span class="s2"&gt;"defined"&lt;/span&gt; may not be portable &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wexpansion-to-defined&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
ossl_pkey.h:43:5: warning: this use of &lt;span class="s2"&gt;"defined"&lt;/span&gt; may not be portable &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wexpansion-to-defined&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
ossl_x509store.c: In &lt;span class="k"&gt;function&lt;/span&gt; ‘DupX509StorePtr’:
ossl_x509store.c:83:5: warning: implicit declaration of &lt;span class="k"&gt;function&lt;/span&gt; ‘CRYPTO_add’&lt;span class="p"&gt;;&lt;/span&gt; did you mean ‘CRYPTO_free’? &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wimplicit-function-declaration&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
     CRYPTO_add&lt;span class="o"&gt;(&lt;/span&gt;&amp;amp;store-&amp;gt;references, 1, CRYPTO_LOCK_X509_STORE&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
     ^~~~~~~~~~
     CRYPTO_free
ossl_x509store.c:83:22: error: dereferencing pointer to incomplete &lt;span class="nb"&gt;type&lt;/span&gt; ‘X509_STORE &lt;span class="o"&gt;{&lt;/span&gt;aka struct x509_store_st&lt;span class="o"&gt;}&lt;/span&gt;’
     CRYPTO_add&lt;span class="o"&gt;(&lt;/span&gt;&amp;amp;store-&amp;gt;references, 1, CRYPTO_LOCK_X509_STORE&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                      ^~
ossl_x509store.c:83:39: error: ‘CRYPTO_LOCK_X509_STORE’ undeclared &lt;span class="o"&gt;(&lt;/span&gt;first use &lt;span class="k"&gt;in &lt;/span&gt;this &lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; did you mean ‘CRYPTO_EX_INDEX_X509_STORE’?
     CRYPTO_add&lt;span class="o"&gt;(&lt;/span&gt;&amp;amp;store-&amp;gt;references, 1, CRYPTO_LOCK_X509_STORE&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                                       ^~~~~~~~~~~~~~~~~~~~~~
                                       CRYPTO_EX_INDEX_X509_STORE
ossl_x509store.c:83:39: note: each undeclared identifier is reported only once &lt;span class="k"&gt;for &lt;/span&gt;each &lt;span class="k"&gt;function &lt;/span&gt;it appears &lt;span class="k"&gt;in
&lt;/span&gt;ossl_x509store.c: In &lt;span class="k"&gt;function&lt;/span&gt; ‘ossl_x509stctx_free’:
ossl_x509store.c:372:11: error: dereferencing pointer to incomplete &lt;span class="nb"&gt;type&lt;/span&gt; ‘X509_STORE_CTX &lt;span class="o"&gt;{&lt;/span&gt;aka struct x509_store_ctx_st&lt;span class="o"&gt;}&lt;/span&gt;’
     &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;ctx-&amp;gt;untrusted&lt;span class="o"&gt;)&lt;/span&gt;
           ^~
ossl_x509store.c: In &lt;span class="k"&gt;function&lt;/span&gt; ‘ossl_x509stctx_get_curr_crl’:
ossl_x509store.c:537:1: warning: control reaches end of non-void &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wreturn-type&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
 &lt;span class="o"&gt;}&lt;/span&gt;
 ^
Makefile:280: recipe &lt;span class="k"&gt;for &lt;/span&gt;target &lt;span class="s1"&gt;'ossl_x509store.o'&lt;/span&gt; failed
make[2]: &lt;span class="k"&gt;***&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;ossl_x509store.o] Error 1
make[2]: Leaving directory &lt;span class="s1"&gt;'/tmp/ruby-build.20180628213825.8724/ruby-2.1.10/ext/openssl'&lt;/span&gt;
exts.mk:191: recipe &lt;span class="k"&gt;for &lt;/span&gt;target &lt;span class="s1"&gt;'ext/openssl/all'&lt;/span&gt; failed
make[1]: &lt;span class="k"&gt;***&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;ext/openssl/all] Error 2
make[1]: &lt;span class="k"&gt;***&lt;/span&gt; 正在等待未完成的任务....
linking shared-object objspace.so
make[2]: Leaving directory &lt;span class="s1"&gt;'/tmp/ruby-build.20180628213825.8724/ruby-2.1.10/ext/objspace'&lt;/span&gt;
linking shared-object nkf.so
make[2]: Leaving directory &lt;span class="s1"&gt;'/tmp/ruby-build.20180628213825.8724/ruby-2.1.10/ext/nkf'&lt;/span&gt;
linking shared-object dl/callback.so
make[2]: Leaving directory &lt;span class="s1"&gt;'/tmp/ruby-build.20180628213825.8724/ruby-2.1.10/ext/dl/callback'&lt;/span&gt;
make[1]: Leaving directory &lt;span class="s1"&gt;'/tmp/ruby-build.20180628213825.8724/ruby-2.1.10'&lt;/span&gt;
uncommon.mk:180: recipe &lt;span class="k"&gt;for &lt;/span&gt;target &lt;span class="s1"&gt;'build-ext'&lt;/span&gt; failed
make: &lt;span class="k"&gt;***&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;build-ext] Error 2

&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=" "&gt; &lt;/h2&gt;&lt;h2 id="解决方案"&gt;解决方案&lt;/h2&gt;
&lt;p&gt;折腾了一天，没想到 github 中的 ruby-build 项目中的 wiki 中已有前辈碰见过这种问题，并提供了解决方案。&lt;/p&gt;

&lt;p&gt;实在汗颜，感情自己白折腾了，不过了也从中吸取到了教训，谷歌和百度不是万能的，最靠谱的还是源项目文档！！！！！！（此处强调）
&lt;img src="https://l.ruby-china.com/photo/2018/7cb77b08-9aa3-45e9-a6ca-2674b3f2194e.png!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Thu, 28 Jun 2018 17:33:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/37064</link>
      <guid>https://ruby-china.org/topics/37064</guid>
    </item>
    <item>
      <title>关于符号 ” 被转义成 &amp;quot; 的解决方法，不使用 raw 和 html_safe 方法！！！</title>
      <description>&lt;p&gt;在 script 脚本中，我是这样定义的：&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;封禁&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;pluck&lt;/span&gt;&lt;span class="p"&gt;(:&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;调式结果是：&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;quot&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nx"&gt;滴酒醉&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;quot&lt;/span&gt;&lt;span class="p"&gt;;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;quot&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nx"&gt;打工走天下&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;quot&lt;/span&gt;&lt;span class="p"&gt;;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;很明显”被转义成 &amp;amp;quot 了，使用 raw 和 html_safe 倒可以解决，但这种做法又关闭了安全过滤，存在安全隐患，有没有更完美的解决方案？？？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Wed, 30 Aug 2017 17:08:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/33982</link>
      <guid>https://ruby-china.org/topics/33982</guid>
    </item>
    <item>
      <title>Rails 中想在 model 中添加两个变量，去存储 controller 中传过来的变量，并且这两个变量在整个 model class 中都可用，应该怎么做</title>
      <description>&lt;p&gt;ails 中想在 model 中添加两个变量，比如 a,b &lt;br&gt;
，去存储 controller 中传过来的变量，比如 c,d &lt;br&gt;
并且这两个变量 (a,b) 在整个 model class 中都可用，应该怎么做？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Wed, 30 Aug 2017 15:23:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/33979</link>
      <guid>https://ruby-china.org/topics/33979</guid>
    </item>
    <item>
      <title>相关联的表中，字段联动处理的最优方法！请指教！！！</title>
      <description>&lt;h4 id="情境："&gt;情境：&lt;/h4&gt;
&lt;p&gt;有两张表：authors 和 customers。&lt;/p&gt;

&lt;p&gt;authors 表有两字段：(主键)id，name&lt;/p&gt;

&lt;p&gt;articles 表有两字段： (主键)id，author_id 或 author_name&lt;/p&gt;

&lt;p&gt;如题，应该存 author_id 好？还是 author_name 好？存 author_id 的话，可以不用考虑作者更名的情况，但每查一篇文章，都要增加一次搜索，在 authoes 表中再查一次该篇文章作者；而存 author_name 的话，自然不必再去查该篇文章作者，但又必须在模型中写回调，在作者更名时，同时修改数据库 acticles 表中属于该作者文章的 author_name 字段。感觉怎样都不好，有没有更优雅的解决方法，求高人指点！！！&lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt; &lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt; &lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Mon, 28 Aug 2017 12:16:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/33956</link>
      <guid>https://ruby-china.org/topics/33956</guid>
    </item>
    <item>
      <title>关于 ActiveRecord 中 where 和 find_by 查询接口的查询方式！！！</title>
      <description>&lt;p&gt;如题，先上背景&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# User 模型&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;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;state: &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;last&lt;/span&gt;
&lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by&lt;/span&gt;&lt;span class="err"&gt;（&lt;/span&gt;&lt;span class="ss"&gt;state: &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在我想在 users 表中找到 state 为 5 的最后一个用户，因此我采用 where 查询接口，先找到全部 state 为 5 的 user，再取最后一个，但这样的话，感觉效率不高。因此我想采用类似 find_by 的方式查找，可采用这种方式的话，却有只能找到 users 表中最前面的 state 为 5 的用户，恰恰相反，请问各位前辈有什么解决方法传授小弟，小弟感激不尽&lt;img title=":joy:" alt="😂" src="https://twemoji.ruby-china.com/2/svg/1f602.svg" class="twemoji"&gt; &lt;img title=":joy:" alt="😂" src="https://twemoji.ruby-china.com/2/svg/1f602.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Sat, 12 Aug 2017 13:21:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/33810</link>
      <guid>https://ruby-china.org/topics/33810</guid>
    </item>
    <item>
      <title>Rails API 中方法的参数 options = {} 的有效哈希对？</title>
      <description>&lt;p&gt;在 Rails API 中，我们可以看到很多方法都带有 options = {} 这种参数，那么可以传入哪些有效的哈希对呢？&lt;/p&gt;

&lt;p&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;collection_select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;collection&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt; &lt;span class="n"&gt;html_options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt;
    &lt;span class="no"&gt;Tags&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;CollectionSelect&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;object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;method&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="n"&gt;collection&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;html_options&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个 collection_select 方法中，我知道 html_options = {} 这个参数应该填哪些哈希对是有效的，但 options = {} 这个参数中我目前只知道官方例子中的那一种 prompt: true，而随意填入其他的哈希对都没效果，请问各位大佬它还能填写哪些有效哈希对？？？&lt;/p&gt;

&lt;p&gt;扩展开来看，像其他方法中 options = {} 参数又有哪些有效哈希对？？？&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;choices&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt; &lt;span class="n"&gt;html_options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="n"&gt;grouped_options_for_select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;grouped_options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;selected_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt; 
&lt;span class="o"&gt;......&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Sat, 12 Aug 2017 10:50:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/33808</link>
      <guid>https://ruby-china.org/topics/33808</guid>
    </item>
    <item>
      <title>关于 Rails 测试，判断前端按钮的一些问题？</title>
      <description>&lt;p&gt;如题，现在前端中有一个 data-toggle 按钮，不会向服务器发送任何请求，在测试时，怎么判断它是否有被点击？？？
具体如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;%= link_to '新增客戶', '#customer-type-select', 'data-toggle' =&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'modal'&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Thu, 10 Aug 2017 00:24:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/33791</link>
      <guid>https://ruby-china.org/topics/33791</guid>
    </item>
    <item>
      <title>ActiveRecord 中 where 查询接口的一些问题</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Customer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"id in ?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ids&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="no"&gt;Customer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"id in (?)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ids&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;customers 表中的 id 是 integer 类型，而 ids 是个字符串数组 ["1", "2", "3"]，用上面的两种方式查询，结果：第一种失败，第二种才能查到数据，这是为什么？&lt;/p&gt;

&lt;p&gt;?和 (?) 的区别是什么？&lt;/p&gt;</description>
      <author>qq2729877005</author>
      <pubDate>Fri, 04 Aug 2017 16:31:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/33728</link>
      <guid>https://ruby-china.org/topics/33728</guid>
    </item>
  </channel>
</rss>
