<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>haohaodehao (haohao)</title>
    <link>https://ruby-china.org/haohaodehao</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>MySQL 官方 manual 文档竟然这样糊弄人</title>
      <description>&lt;p&gt;个人觉得这文档就是把简单的事情搞得复杂（各种历史遗留功能），复杂的事情变成黑盒（InnoDB 引擎单元）。
我去检索 InnoDB 的内部原理，诺达的互联网竟然没几个深入浅出的资源。&lt;/p&gt;</description>
      <author>haohaodehao</author>
      <pubDate>Mon, 14 Jul 2025 10:24:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/44221</link>
      <guid>https://ruby-china.org/topics/44221</guid>
    </item>
    <item>
      <title>Rake Task 的奇怪行为</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:simple_job&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;'just end'&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
 &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;运行代码，然后报错，然后改为 break&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;task&lt;/span&gt;  &lt;span class="ss"&gt;:simple_job&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="k"&gt;break&lt;/span&gt;  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
 &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;run 它，依然报错。&lt;/p&gt;

&lt;p&gt;一种奇怪的方式来实现提前退出 rake task&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;task&lt;/span&gt;  &lt;span class="ss"&gt;:simple_job&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="k"&gt;next&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
 &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;</description>
      <author>haohaodehao</author>
      <pubDate>Mon, 27 Jan 2025 17:12:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/44030</link>
      <guid>https://ruby-china.org/topics/44030</guid>
    </item>
    <item>
      <title>记录一个 Ruby 有而 Java 没有的问题</title>
      <description>&lt;p&gt;像这样：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;M&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method_test&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;class&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;say_hi&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;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;
&lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;M&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;B&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;A&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;say_hi&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;method_test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;该问题，在我用同事写的“method_test”方法时会发生，他用起来没问题，因为他一直在用 class B 的实例来调 method_test。很愚蠢，该怎么避免呢？&lt;/p&gt;

&lt;p&gt;ruby 需要类型检测吗？谁有招解决该问题&lt;/p&gt;</description>
      <author>haohaodehao</author>
      <pubDate>Fri, 09 Sep 2022 12:05:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/42641</link>
      <guid>https://ruby-china.org/topics/42641</guid>
    </item>
    <item>
      <title>新手安装 Rails 环境（Ubuntu 18.04 LTS 安装 Ruby on Rails）</title>
      <description>&lt;h2 id="ubuntu 18.04 LTS安装ruby on rails"&gt;ubuntu 18.04 LTS 安装 ruby on rails&lt;/h2&gt;&lt;h2 id="注意"&gt;注意&lt;/h2&gt;
&lt;p&gt;由于令人‘烦恼’的网络问题，不用&amp;amp;代&amp;amp;理来正确安装 rails 已不可能。我自己配置了一个 VirtualBox 的 ubuntu 18.04 LTS 的虚拟机，在其中设置了 rails 的开发环境，你可以直接在 virtualbox 中导入它，然后即可拥有 rails 环境。在&lt;a href="https://pan.baidu.com/s/1dyk2mL6NgGEdaQ-2WulP0A" rel="nofollow" target="_blank" title=""&gt;百度网盘&lt;/a&gt;中下载它，提取码：4zp4。用户名：myubuntu, 密码：123456&lt;/p&gt;
&lt;h2 id="使用"&gt;使用&lt;/h2&gt;
&lt;p&gt;1.每次 rails new 新项目后，程序会在这里卡住，使用 ctrl+c 结束该程序&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2021/35617603-1e91-4604-b47b-5663e46c1c1c.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;2.修改 Gemfile 文件的 source 配置，像下面这样修改&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2021/d7a4a911-ef60-4486-839e-4a4ae3567675.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;3.然后进入项目目录，再次执行&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bundle install
rails webpacker:install
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="需要帮助？"&gt;需要帮助？&lt;/h2&gt;
&lt;p&gt;你有任何关于 ruby 和 rails 的问题，都应该首先在搜索引擎里寻找答案！如果需要我的帮助，请给我发邮件'xiy73986@gmail.com'&lt;/p&gt;
&lt;h2 id="下面是该‘虚拟机’安装rails环境的具体步骤"&gt;下面是该‘虚拟机’安装 rails 环境的具体步骤&lt;/h2&gt;&lt;h3 id="1.设置apt软件源为阿里云"&gt;1.设置 apt 软件源为阿里云&lt;/h3&gt;&lt;h3 id="2.安装rvm"&gt;2.安装 rvm&lt;/h3&gt;
&lt;p&gt;参考&lt;a href="https://github.com/rvm/ubuntu_rvm" rel="nofollow" target="_blank" title=""&gt;ubuntu_rvm&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="3.设置rvm使用ruby-china源"&gt;3.设置 rvm 使用 ruby-china 源&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "ruby_url=https://cache.ruby-china.com/pub/ruby" &amp;gt; ~/.rvm/user/db
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="4.安装ruby 2.6.6"&gt;4.安装 ruby 2.6.6&lt;/h3&gt;&lt;h3 id="5.修改gem使用ruby-china源"&gt;5.修改 gem 使用 ruby-china 源&lt;/h3&gt;&lt;h3 id="6.安装yarn"&gt;6.安装 yarn&lt;/h3&gt;&lt;h3 id="7.修改yarn使用淘宝源"&gt;7.修改 yarn 使用淘宝源&lt;/h3&gt;&lt;h3 id="8.安装较新的nodejs"&gt;8.安装较新的 nodejs&lt;/h3&gt;</description>
      <author>haohaodehao</author>
      <pubDate>Sun, 03 Jan 2021 16:31:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/40775</link>
      <guid>https://ruby-china.org/topics/40775</guid>
    </item>
    <item>
      <title>Rails 身份认证解决方案 Devise 自述文件 (Readme) 中文翻译</title>
      <description>&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2020/8d3c4a80-d2f5-4776-8003-6d472e90724e.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;Devise 是基于 Warden 的灵活的 rails 身份认证解决方案。它：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;基于 Rack；&lt;/li&gt;
&lt;li&gt;它是一个基于 rails 引擎的完整 MVC 解决方案；&lt;/li&gt;
&lt;li&gt;可以同时登录多个模型；&lt;/li&gt;
&lt;li&gt;基于模块化概念：只使用你需要的部分。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;一般会用它开发 rails 应用的登录系统，
文章地址在&lt;a href="https://haohaohousedoc.com/blogs/2/read_blog" rel="nofollow" target="_blank" title=""&gt;这里&lt;/a&gt;&lt;/p&gt;</description>
      <author>haohaodehao</author>
      <pubDate>Mon, 21 Dec 2020 17:15:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/40724</link>
      <guid>https://ruby-china.org/topics/40724</guid>
    </item>
    <item>
      <title>Rails 静态页面缓存技术（actionpack-page_caching）中文翻译文档（github 文档）</title>
      <description>&lt;p&gt;Action Pack 静态页面缓存，缓存端点通过 web 服务器实现短路，web 服务器在伺服静态文件方面十分强大，请求直接到达缓存端点，甚至不会到达 Rails 应用。使用该技术能极大提高性能。&lt;/p&gt;

&lt;p&gt;我的网站新发表了该 gem 的产品文档，地址在&lt;a href="https://haohaohousedoc.com/blogs/5/read_blog" rel="nofollow" target="_blank" title=""&gt;这里&lt;/a&gt;&lt;/p&gt;</description>
      <author>haohaodehao</author>
      <pubDate>Wed, 02 Dec 2020 15:24:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/40647</link>
      <guid>https://ruby-china.org/topics/40647</guid>
    </item>
    <item>
      <title>Capybara GitHub README 文档翻译</title>
      <description>&lt;p&gt;Capybara 通过模拟真实用户与你应用的交互来帮你测试 web 应用。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://l.ruby-china.com/photo/2020/7dba0b47-83db-436e-a97d-1e8e7e620a39.png!large" rel="nofollow" target="_blank" title=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;文章在&lt;a href="https://haohaohousedoc.com/blogs/4/read_blog" rel="nofollow" target="_blank" title=""&gt;这里&lt;/a&gt;&lt;/p&gt;</description>
      <author>haohaodehao</author>
      <pubDate>Mon, 16 Nov 2020 20:44:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/40580</link>
      <guid>https://ruby-china.org/topics/40580</guid>
    </item>
  </channel>
</rss>
