<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>HyeKyoZ-github (朱德培)</title>
    <link>https://ruby-china.org/HyeKyoZ-github</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>请问一下 ruby 现在可以显示调用私有方法了（self.private_method）？</title>
      <description>&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/783263d3-1083-4dac-a641-72f2a6c851f7.png!large" title="" alt=""&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;C&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;public_method&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;private_method&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;private_method&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="no"&gt;C&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;public_method&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面代码在 &lt;code&gt;ruby 3.3.0&lt;/code&gt; 里面成功执行，没报错。执行结果如图&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/43167e24-55d1-4d32-81e0-16aa8b92cd40.png!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>HyeKyoZ-github</author>
      <pubDate>Sun, 25 Feb 2024 17:41:04 +0800</pubDate>
      <link>https://ruby-china.org/topics/43600</link>
      <guid>https://ruby-china.org/topics/43600</guid>
    </item>
    <item>
      <title>validates unless 问题</title>
      <description>&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/2fb5a81c-cfe3-4b44-a3ae-aeb3ea0a7c98.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;见图，请问下这里为什么使用 &lt;code&gt;unless: -&amp;gt; { system_event? }&lt;/code&gt;，而不是直接 &lt;code&gt;unless: :system_event?&lt;/code&gt;&lt;/p&gt;</description>
      <author>HyeKyoZ-github</author>
      <pubDate>Mon, 19 Jul 2021 21:33:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/41488</link>
      <guid>https://ruby-china.org/topics/41488</guid>
    </item>
    <item>
      <title>Rails API 多次 Rendered</title>
      <description>&lt;p&gt;使用 &lt;code&gt;ActiveStorage&lt;/code&gt; 组件，为了避免 &lt;code&gt;N+1&lt;/code&gt; 查询，使用了 &lt;code&gt;has_one_attached: :field&lt;/code&gt; 对应的 &lt;code&gt;with_attached_field&lt;/code&gt; 方法，之后就出现了多次 &lt;code&gt;Rendered&lt;/code&gt;。
这里 去掉 &lt;code&gt;.with_attached_attachment&lt;/code&gt; &lt;code&gt;.with_attached_icon&lt;/code&gt; 这两个方法之后就正常了。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Started GET &lt;span class="s2"&gt;"/api/v1/posts?writable_id=2&amp;amp;writable_type=Navigation&amp;amp;query=%E6%96%87%E7%AB%A0"&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; ::1 at 2021-07-15 16:51:34 +0800
   &lt;span class="o"&gt;(&lt;/span&gt;69.6ms&lt;span class="o"&gt;)&lt;/span&gt;  SELECT &lt;span class="sb"&gt;`&lt;/span&gt;schema_migrations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="sb"&gt;`&lt;/span&gt;version&lt;span class="sb"&gt;`&lt;/span&gt; FROM &lt;span class="sb"&gt;`&lt;/span&gt;schema_migrations&lt;span class="sb"&gt;`&lt;/span&gt; ORDER BY &lt;span class="sb"&gt;`&lt;/span&gt;schema_migrations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="sb"&gt;`&lt;/span&gt;version&lt;span class="sb"&gt;`&lt;/span&gt; ASC
Processing by PostsController#index as &lt;span class="k"&gt;*&lt;/span&gt;/&lt;span class="k"&gt;*&lt;/span&gt;
  Parameters: &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"writable_id"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;, &lt;span class="s2"&gt;"writable_type"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"Navigation"&lt;/span&gt;, &lt;span class="s2"&gt;"query"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"文章"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
  Navigation Load &lt;span class="o"&gt;(&lt;/span&gt;69.0ms&lt;span class="o"&gt;)&lt;/span&gt;  SELECT &lt;span class="sb"&gt;`&lt;/span&gt;navigations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt; FROM &lt;span class="sb"&gt;`&lt;/span&gt;navigations&lt;span class="sb"&gt;`&lt;/span&gt; WHERE &lt;span class="sb"&gt;`&lt;/span&gt;navigations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 2 LIMIT 1
  ↳ app/controllers/posts_controller.rb:10:in &lt;span class="sb"&gt;`&lt;/span&gt;index&lt;span class="s1"&gt;'
  Rendering posts/index.json.jbuilder
   (68.9ms)  SELECT COUNT(*) FROM `posts` INNER JOIN `writings` ON `posts`.`id` = `writings`.`post_id` WHERE `writings`.`writable_id` = 2 AND `writings`.`writable_type` = '&lt;/span&gt;Navigation&lt;span class="s1"&gt;' AND (title like '&lt;/span&gt;%文章%&lt;span class="s1"&gt;' or content like '&lt;/span&gt;%文章%&lt;span class="s1"&gt;')
  ↳ app/views/posts/index.json.jbuilder:1
  Post Load (137.4ms)  SELECT `posts`.* FROM `posts` INNER JOIN `writings` ON `posts`.`id` = `writings`.`post_id` WHERE `writings`.`writable_id` = 2 AND `writings`.`writable_type` = '&lt;/span&gt;Navigation&lt;span class="s1"&gt;' AND (title like '&lt;/span&gt;%文章%&lt;span class="s1"&gt;' or content like '&lt;/span&gt;%文章%&lt;span class="s1"&gt;') ORDER BY `posts`.`id` DESC LIMIT 25 OFFSET 0
  ↳ app/views/posts/index.json.jbuilder:2
  Writing Load (68.0ms)  SELECT `writings`.* FROM `writings` WHERE `writings`.`writable_type` = '&lt;/span&gt;Navigation&lt;span class="s1"&gt;' AND `writings`.`post_id` IN (47, 46, 45, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22)
  ↳ app/views/posts/index.json.jbuilder:2
  Navigation Load (78.1ms)  SELECT `navigations`.* FROM `navigations` WHERE `navigations`.`id` IN (1, 2)
  ↳ app/views/posts/index.json.jbuilder:2
  Writing Load (75.3ms)  SELECT `writings`.* FROM `writings` WHERE `writings`.`writable_type` = '&lt;/span&gt;Theme&lt;span class="s1"&gt;' AND `writings`.`post_id` IN (47, 46, 45, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22)
  ↳ app/views/posts/index.json.jbuilder:2
  Theme Load (65.9ms)  SELECT `themes`.* FROM `themes` WHERE `themes`.`id` = 12
  ↳ app/views/posts/index.json.jbuilder:2
  ActiveStorage::Attachment Load (73.8ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' AND `active_storage_attachments`.`record_id` IN (47, 46, 45, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22)
  ↳ app/views/posts/index.json.jbuilder:2
  ActiveStorage::Attachment Load (84.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' AND `active_storage_attachments`.`record_id` IN (47, 46, 45, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22)
  ↳ app/views/posts/index.json.jbuilder:2
  Rendered posts/_post.json.jbuilder (Duration: 1.4ms | Allocations: 322)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 73)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 73)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.3ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.2ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/_post.json.jbuilder (Duration: 0.1ms | Allocations: 74)
  Rendered posts/index.json.jbuilder (Duration: 1056.0ms | Allocations: 38657)
Completed 200 OK in 1524ms (Views: 131.5ms | ActiveRecord: 1338.4ms | Allocations: 59390)
&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="c1"&gt;# PostsController#index&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;
  &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Post&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;if&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:writable_id&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;present?&lt;/span&gt; &lt;span class="ow"&gt;and&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;:writable_type&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;present?&lt;/span&gt;
    &lt;span class="n"&gt;writable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;case&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;:writable_type&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
               &lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="no"&gt;Navigation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;
                 &lt;span class="no"&gt;Navigation&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;:writable_id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
               &lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="no"&gt;Theme&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;
                 &lt;span class="no"&gt;Theme&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;:writable_id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
               &lt;span class="k"&gt;else&lt;/span&gt;
                 &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="no"&gt;ArgumentError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"writable_type: &lt;/span&gt;&lt;span class="si"&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;:writable_type&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is invalid."&lt;/span&gt;
               &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;writable&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;posts&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scope&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;kind: &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;:kind&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:kind&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;present?&lt;/span&gt;
  &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scope&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;"title like ?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"%&lt;/span&gt;&lt;span class="si"&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;:query&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;%"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:query&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;present?&lt;/span&gt;
  &lt;span class="vi"&gt;@posts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;with_attached_attachment&lt;/span&gt;
                &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;with_attached_icon&lt;/span&gt;
                &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;preload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:navigations&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:themes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;page&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;:page&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;per&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;:limit&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
                &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;id: :desc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Post&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
  &lt;span class="n"&gt;enum&lt;/span&gt; &lt;span class="ss"&gt;kind: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;notice: &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;article: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;enum&lt;/span&gt; &lt;span class="ss"&gt;source: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;original: &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;link: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;enum&lt;/span&gt; &lt;span class="ss"&gt;jump_type: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;jump_link: &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;mini_program: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="n"&gt;has_one_attached&lt;/span&gt; &lt;span class="ss"&gt;:icon&lt;/span&gt;
  &lt;span class="n"&gt;has_one_attached&lt;/span&gt; &lt;span class="ss"&gt;:attachment&lt;/span&gt;

  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:writings&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:navigations&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :writings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;source: :writable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;source_type: &lt;/span&gt;&lt;span class="s1"&gt;'Navigation'&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:themes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :writings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;source: :writable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;source_type: &lt;/span&gt;&lt;span class="s1"&gt;'Theme'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/feac707b-1ece-4507-9d46-9c04fce2a4dc.png!large" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/04055c5a-1677-4733-9d2d-f1497c81e600.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;下面是去掉 &lt;code&gt;.with_attached_attachment&lt;/code&gt; &lt;code&gt;.with_attached_icon&lt;/code&gt; 这两个方法之后 log&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Started GET &lt;span class="s2"&gt;"/api/v1/posts?writable_id=2&amp;amp;writable_type=Navigation&amp;amp;query=%E6%96%87%E7%AB%A0"&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; ::1 at 2021-07-15 17:20:31 +0800
   &lt;span class="o"&gt;(&lt;/span&gt;64.5ms&lt;span class="o"&gt;)&lt;/span&gt;  SELECT &lt;span class="sb"&gt;`&lt;/span&gt;schema_migrations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="sb"&gt;`&lt;/span&gt;version&lt;span class="sb"&gt;`&lt;/span&gt; FROM &lt;span class="sb"&gt;`&lt;/span&gt;schema_migrations&lt;span class="sb"&gt;`&lt;/span&gt; ORDER BY &lt;span class="sb"&gt;`&lt;/span&gt;schema_migrations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="sb"&gt;`&lt;/span&gt;version&lt;span class="sb"&gt;`&lt;/span&gt; ASC
Processing by PostsController#index as &lt;span class="k"&gt;*&lt;/span&gt;/&lt;span class="k"&gt;*&lt;/span&gt;
  Parameters: &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"writable_id"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;, &lt;span class="s2"&gt;"writable_type"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"Navigation"&lt;/span&gt;, &lt;span class="s2"&gt;"query"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"文章"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
  Navigation Load &lt;span class="o"&gt;(&lt;/span&gt;72.1ms&lt;span class="o"&gt;)&lt;/span&gt;  SELECT &lt;span class="sb"&gt;`&lt;/span&gt;navigations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt; FROM &lt;span class="sb"&gt;`&lt;/span&gt;navigations&lt;span class="sb"&gt;`&lt;/span&gt; WHERE &lt;span class="sb"&gt;`&lt;/span&gt;navigations&lt;span class="sb"&gt;`&lt;/span&gt;.&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 2 LIMIT 1
  ↳ app/controllers/posts_controller.rb:10:in &lt;span class="sb"&gt;`&lt;/span&gt;index&lt;span class="s1"&gt;'
  Rendering posts/index.json.jbuilder
   (60.8ms)  SELECT COUNT(*) FROM `posts` INNER JOIN `writings` ON `posts`.`id` = `writings`.`post_id` WHERE `writings`.`writable_id` = 2 AND `writings`.`writable_type` = '&lt;/span&gt;Navigation&lt;span class="s1"&gt;' AND (title like '&lt;/span&gt;%文章%&lt;span class="s1"&gt;')
  ↳ app/views/posts/index.json.jbuilder:1
  Post Load (229.0ms)  SELECT `posts`.* FROM `posts` INNER JOIN `writings` ON `posts`.`id` = `writings`.`post_id` WHERE `writings`.`writable_id` = 2 AND `writings`.`writable_type` = '&lt;/span&gt;Navigation&lt;span class="s1"&gt;' AND (title like '&lt;/span&gt;%文章%&lt;span class="s1"&gt;') ORDER BY `posts`.`id` DESC LIMIT 25 OFFSET 0
  ↳ app/views/posts/index.json.jbuilder:2
  Writing Load (77.0ms)  SELECT `writings`.* FROM `writings` WHERE `writings`.`writable_type` = '&lt;/span&gt;Navigation&lt;span class="s1"&gt;' AND `writings`.`post_id` IN (47, 46, 45, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22)
  ↳ app/views/posts/index.json.jbuilder:2
  Navigation Load (75.7ms)  SELECT `navigations`.* FROM `navigations` WHERE `navigations`.`id` IN (1, 2)
  ↳ app/views/posts/index.json.jbuilder:2
  Writing Load (72.5ms)  SELECT `writings`.* FROM `writings` WHERE `writings`.`writable_type` = '&lt;/span&gt;Theme&lt;span class="s1"&gt;' AND `writings`.`post_id` IN (47, 46, 45, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22)
  ↳ app/views/posts/index.json.jbuilder:2
  Theme Load (94.7ms)  SELECT `themes`.* FROM `themes` WHERE `themes`.`id` = 12
  ↳ app/views/posts/index.json.jbuilder:2
  ActiveStorage::Attachment Load (82.1ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 47 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (68.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 47 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 265.2ms | Allocations: 4326)
  ActiveStorage::Attachment Load (67.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 46 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (76.4ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 46 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 149.8ms | Allocations: 1787)
  ActiveStorage::Attachment Load (71.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 45 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (93.4ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 45 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 171.1ms | Allocations: 1771)
  ActiveStorage::Attachment Load (78.6ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 43 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (64.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 43 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 146.7ms | Allocations: 1772)
  ActiveStorage::Attachment Load (69.9ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 42 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (64.9ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 42 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 139.1ms | Allocations: 1772)
  ActiveStorage::Attachment Load (70.5ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 41 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (86.1ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 41 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 161.7ms | Allocations: 1778)
  ActiveStorage::Attachment Load (70.0ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 40 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (77.7ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 40 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 153.8ms | Allocations: 1772)
  ActiveStorage::Attachment Load (75.5ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 39 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (85.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 39 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 166.5ms | Allocations: 1772)
  ActiveStorage::Attachment Load (84.6ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 38 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (104.6ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 38 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 195.1ms | Allocations: 1772)
  ActiveStorage::Attachment Load (91.9ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 37 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (73.4ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 37 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 170.7ms | Allocations: 1772)
  ActiveStorage::Attachment Load (67.8ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 36 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (78.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 36 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 153.8ms | Allocations: 1772)
  ActiveStorage::Attachment Load (68.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 35 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (63.4ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 35 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 137.9ms | Allocations: 1773)
  ActiveStorage::Attachment Load (85.7ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 34 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (62.6ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 34 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 152.7ms | Allocations: 1772)
  ActiveStorage::Attachment Load (65.1ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 33 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (70.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 33 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 140.4ms | Allocations: 1772)
  ActiveStorage::Attachment Load (68.9ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 32 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (75.7ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 32 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 151.2ms | Allocations: 1772)
  ActiveStorage::Attachment Load (70.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 31 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (78.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 31 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 153.3ms | Allocations: 1772)
  ActiveStorage::Attachment Load (74.5ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 30 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (74.9ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 30 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 155.8ms | Allocations: 1772)
  ActiveStorage::Attachment Load (81.9ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 29 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (84.5ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 29 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 172.7ms | Allocations: 1776)
  ActiveStorage::Attachment Load (73.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 28 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (71.7ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 28 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 150.7ms | Allocations: 1772)
  ActiveStorage::Attachment Load (79.9ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 27 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (75.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 27 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 160.4ms | Allocations: 1772)
  ActiveStorage::Attachment Load (80.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 26 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (74.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 26 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 159.8ms | Allocations: 1772)
  ActiveStorage::Attachment Load (108.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 25 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (85.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 25 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 199.2ms | Allocations: 1772)
  ActiveStorage::Attachment Load (70.8ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 24 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (63.1ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 24 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 139.1ms | Allocations: 1772)
  ActiveStorage::Attachment Load (78.2ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 23 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (79.5ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 23 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 162.6ms | Allocations: 1772)
  ActiveStorage::Attachment Load (67.3ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 22 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;icon&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:5
  ActiveStorage::Attachment Load (83.7ms)  SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 22 AND `active_storage_attachments`.`record_type` = '&lt;/span&gt;Post&lt;span class="s1"&gt;' AND `active_storage_attachments`.`name` = '&lt;/span&gt;attachment&lt;span class="s1"&gt;' LIMIT 1
  ↳ app/views/posts/_post.json.jbuilder:14
  Rendered posts/_post.json.jbuilder (Duration: 156.9ms | Allocations: 1773)
  Rendered posts/index.json.jbuilder (Duration: 4976.1ms | Allocations: 79057)
Completed 200 OK in 5492ms (Views: 224.6ms | ActiveRecord: 5210.9ms | Allocations: 99695)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>HyeKyoZ-github</author>
      <pubDate>Thu, 15 Jul 2021 17:05:42 +0800</pubDate>
      <link>https://ruby-china.org/topics/41477</link>
      <guid>https://ruby-china.org/topics/41477</guid>
    </item>
    <item>
      <title>Rails 连接数据库出错</title>
      <description>&lt;p&gt;gemfile
&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/905a8978-c41b-4687-8703-dc20df814e4f.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;使用 rails new almond -d mysql 命令创建了一个新项目
接着就修改了一下 config/database.yaml 里的 password，如图：
&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/0c60d801-6126-4a3a-a2c5-dd902a13172b.png!large" title="" alt=""&gt;
然后执行 rails db:create 报错，如图
&lt;img src="https://l.ruby-china.com/photo/HyeKyoZ-github/682132fb-96b9-4e14-8899-350bf1901624.png!large" title="" alt=""&gt;
请问下这个有人遇到吗？&lt;/p&gt;

&lt;p&gt;database.yml&lt;/p&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# MySQL. Versions 5.5.8 and up are supported.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Install the MySQL driver&lt;/span&gt;
&lt;span class="c1"&gt;#   gem install mysql2&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Ensure the MySQL gem is defined in your Gemfile&lt;/span&gt;
&lt;span class="c1"&gt;#   gem 'mysql2'&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# And be sure to use new-style password hashing:&lt;/span&gt;
&lt;span class="c1"&gt;#   https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="na"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nl"&gt;&amp;amp;default&lt;/span&gt;
  &lt;span class="na"&gt;adapter&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mysql2&lt;/span&gt;
  &lt;span class="na"&gt;encoding&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;utf8mb4&lt;/span&gt;
  &lt;span class="na"&gt;pool&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %&amp;gt;&lt;/span&gt;
  &lt;span class="na"&gt;username&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;root&lt;/span&gt;
  &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;root&lt;/span&gt;
  &lt;span class="na"&gt;socket&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/tmp/mysql.sock&lt;/span&gt;

&lt;span class="na"&gt;development&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;*default&lt;/span&gt;
  &lt;span class="na"&gt;database&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;almond_development&lt;/span&gt;

&lt;span class="c1"&gt;# Warning: The database defined as "test" will be erased and&lt;/span&gt;
&lt;span class="c1"&gt;# re-generated from your development database when you run "rake".&lt;/span&gt;
&lt;span class="c1"&gt;# Do not set this db to the same as development or production.&lt;/span&gt;
&lt;span class="na"&gt;test&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;*default&lt;/span&gt;
  &lt;span class="na"&gt;database&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;almond_test&lt;/span&gt;

&lt;span class="c1"&gt;# As with config/credentials.yml, you never want to store sensitive information,&lt;/span&gt;
&lt;span class="c1"&gt;# like your database password, in your source code. If your source code is&lt;/span&gt;
&lt;span class="c1"&gt;# ever seen by anyone, they now have access to your database.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Instead, provide the password or a full connection URL as an environment&lt;/span&gt;
&lt;span class="c1"&gt;# variable when you boot the app. For example:&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# If the connection URL is provided in the special DATABASE_URL environment&lt;/span&gt;
&lt;span class="c1"&gt;# variable, Rails will automatically merge its configuration values on top of&lt;/span&gt;
&lt;span class="c1"&gt;# the values provided in this file. Alternatively, you can specify a connection&lt;/span&gt;
&lt;span class="c1"&gt;# URL environment variable explicitly:&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;#   production:&lt;/span&gt;
&lt;span class="c1"&gt;#     url: &amp;lt;%= ENV['MY_APP_DATABASE_URL'] %&amp;gt;&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Read https://guides.rubyonrails.org/configuring.html#configuring-a-database&lt;/span&gt;
&lt;span class="c1"&gt;# for a full overview on how database connection configuration can be specified.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="na"&gt;production&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;*default&lt;/span&gt;
  &lt;span class="na"&gt;database&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;almond_production&lt;/span&gt;
  &lt;span class="na"&gt;username&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;almond&lt;/span&gt;
  &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;%= ENV['ALMOND_DATABASE_PASSWORD'] %&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;</description>
      <author>HyeKyoZ-github</author>
      <pubDate>Wed, 12 May 2021 11:10:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/41249</link>
      <guid>https://ruby-china.org/topics/41249</guid>
    </item>
    <item>
      <title>请教关于 ActionCable 的问题</title>
      <description>&lt;h2 id="代码"&gt;代码&lt;/h2&gt;
&lt;p&gt;我是按照&lt;a href="https://github.com/rails/actioncable-examples" rel="nofollow" target="_blank" title=""&gt;rails/actioncable-examples&lt;/a&gt;做的&lt;/p&gt;

&lt;p&gt;我的问题代码放在&lt;a href="https://github.com/zhudepei/action-example" rel="nofollow" target="_blank" title=""&gt;这儿&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="问题"&gt;问题&lt;/h2&gt;&lt;h5 id="问题描述："&gt;问题描述：&lt;/h5&gt;
&lt;blockquote&gt;
&lt;p&gt;问什么会提交 2 次？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h5 id="问题截图："&gt;问题截图：&lt;/h5&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2017/cc26bad1-5aa8-4050-8cb0-25776bd96add.jpg!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;问题已解决。谢谢大家。
引发此问题的原因请参考回答里。&lt;/p&gt;</description>
      <author>HyeKyoZ-github</author>
      <pubDate>Wed, 29 Nov 2017 16:16:13 +0800</pubDate>
      <link>https://ruby-china.org/topics/34653</link>
      <guid>https://ruby-china.org/topics/34653</guid>
    </item>
    <item>
      <title>请教大家一个关于 Ruby 的 Array 的问题？</title>
      <description>&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;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;

&lt;span class="c1"&gt;# [[0, 2, 0], [0, 0, 0], [0, 0, 0]]&lt;/span&gt;
&lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;

&lt;span class="c1"&gt;###################&lt;/span&gt;

&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;b&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt; 
&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;

&lt;span class="c1"&gt;# [[0, 2, 0], [0, 2, 0], [0, 2, 0]]&lt;/span&gt;
&lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;

&lt;span class="c1"&gt;###################&lt;/span&gt;

&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Array&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="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;

&lt;span class="c1"&gt;# [[0, 2, 0], [0, 2, 0], [0, 2, 0]]&lt;/span&gt;
&lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;

&lt;span class="c1"&gt;###################&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="根据以上结果产生的问题：三种初始化的结果为什么不同？ a 与 d ？，d 与 c ？"&gt;根据以上结果产生的问题：三种初始化的结果为什么不同？a 与 d？，d 与 c？&lt;/h2&gt;
&lt;p&gt;测试环境：&lt;code&gt;ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin17]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;谢谢大家！&lt;/p&gt;</description>
      <author>HyeKyoZ-github</author>
      <pubDate>Tue, 26 Sep 2017 20:09:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/34262</link>
      <guid>https://ruby-china.org/topics/34262</guid>
    </item>
  </channel>
</rss>
