<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>woody1983 (Semiscon)</title>
    <link>https://ruby-china.org/woody1983</link>
    <description>人生中的第一个PR什么时候会登场</description>
    <language>en-us</language>
    <item>
      <title>不知道是否有人已经分享过 [Jumpstart Lab] 的 Tutorials</title>
      <description>&lt;p&gt;&lt;a href="http://tutorials.jumpstartlab.com/" rel="nofollow" target="_blank" title=""&gt;tutorials on Jumpstart Lab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;有&lt;code&gt;Ruby&lt;/code&gt;,&lt;code&gt;Sinatra&lt;/code&gt;,&lt;code&gt;Rails&lt;/code&gt; 教材蛮好的&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Mon, 19 May 2014 18:55:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/19392</link>
      <guid>https://ruby-china.org/topics/19392</guid>
    </item>
    <item>
      <title>Heroku 部署 Octopress 时的问题 #fixed</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fetching repository, done.
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 499 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)

-----&amp;gt; Deleting 4 files matching .slugignore patterns.
-----&amp;gt; Ruby app detected
-----&amp;gt; Compiling Ruby/Rack
-----&amp;gt; Using Ruby version: ruby-2.0.0
-----&amp;gt; Installing dependencies using 1.5.2
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
       Fetching gem metadata from https://rubygems.org/..........
       Fetching additional metadata from https://rubygems.org/..
       Using rack (1.5.2)
       Using tilt (1.3.7)
       Using stringex (1.4.0)
       Using bundler (1.5.2)
       Using rack-protection (1.5.0)
       Using sinatra (1.4.2)
       Installing daemons (1.1.9)
       Installing eventmachine (1.0.3)
       Installing thin (1.6.2)
       Your bundle is complete!
       Gems in the groups development and test were not installed.
       It was installed into ./vendor/bundle
       Bundle completed (19.81s)
       Cleaning up the bundler cache.
-----&amp;gt; WARNINGS:
       No Procfile detected, using the default web server (webrick)
       https://devcenter.heroku.com/articles/ruby-default-web-server
-----&amp;gt; Discovering process types
       Procfile declares types -&amp;gt; (none)
       Default types for Ruby  -&amp;gt; console, rake, web

-----&amp;gt; Compressing... done, 13.2MB
-----&amp;gt; Launching... done, v7
       http://frozen-citadel-7241.herokuapp.com/ deployed to Heroku

To git@heroku.com:frozen-citadel-7241.git
   1f5d4fa..60e102f  master -&amp;gt; master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;中间说没有&lt;code&gt;No Procfile detected, using the default web server (webrick)&lt;/code&gt;指定 web 服务器 请教一下这个 各位遇到过吗？&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Sat, 03 May 2014 00:18:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/18972</link>
      <guid>https://ruby-china.org/topics/18972</guid>
    </item>
    <item>
      <title>《分布式数据库 “未来工房”：只使用 Riak 和 Nginx 搭建的静态文件服务器》</title>
      <description>&lt;p&gt;在搭建网站时，如果更新不多会用静态文件服务器，但如果要扩容，处理巨大的流量是件比较复杂的事情。负载均衡、磁盘冗余、容量规划、横向扩展、缩减，工程师需要考虑的问题非常多。在这里，我们将使用基于 GitHub pages 中表现出色的 Riak，在不编程的情况下，搭建既可以维持稳定延迟，又可快速扩展的静态文件服务器网站。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.ituring.com.cn/article/72322" rel="nofollow" target="_blank" title=""&gt;图灵 Software Design 中文版 01~ 【日】技术评论社 (作者)   (译者) &lt;/a&gt;&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Wed, 23 Apr 2014 13:34:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/18791</link>
      <guid>https://ruby-china.org/topics/18791</guid>
    </item>
    <item>
      <title>看个好玩的</title>
      <description>&lt;h2 id="Only dates between January 1, 1753 and December 31, 9999 are accepted."&gt;Only dates between January 1, 1753 and December 31, 9999 are accepted.&lt;/h2&gt;
&lt;p&gt;SQL-SERVER 的一个报错~ 发现一条老数据 Date 时间是 1464 年的~ &lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Wed, 09 Oct 2013 17:02:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/14619</link>
      <guid>https://ruby-china.org/topics/14619</guid>
    </item>
    <item>
      <title>收藏功能有点问题</title>
      <description>&lt;p&gt;我在帖子里点了喜欢和收藏 但在&lt;code&gt;我的收藏&lt;/code&gt;里找不到这个帖子
这算 bug 还是我哪里需要设置什么？&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Thu, 26 Sep 2013 09:39:13 +0800</pubDate>
      <link>https://ruby-china.org/topics/14394</link>
      <guid>https://ruby-china.org/topics/14394</guid>
    </item>
    <item>
      <title>这个知识点是什么？</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Dsl&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"parse is here."&lt;/span&gt;
    &lt;span class="no"&gt;Executor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="c1"&gt;# &amp;lt;&amp;lt;&amp;lt;--- 是不是走到这里的时候 当前对象的所属类就发生改变？&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;Executor&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute&lt;/span&gt;
    &lt;span class="s2"&gt;"execute is here."&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;调用的时候 发现直接声明这个 Class 的实例 该实例的所属类还是 Dsl
当将 Dsl 的实例方法 parse 赋值给 另一个 object 的时候 他的所属类就变了&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;017&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj_dsl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Dsl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;#&amp;lt;Dsl:0x8453154&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;01&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj_dsl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;class&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Dsl&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;01&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj_exe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Dsl&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;parse&lt;/span&gt;
&lt;span class="n"&gt;parse&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;here&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="nf"&gt;=&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;#&amp;lt;Executor:0x82fc06c&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;020&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj_exe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;class&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Executor&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="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Dsl&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"parse is here."&lt;/span&gt;
    &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;
      &lt;span class="no"&gt;Executor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可是这个应该不是单例方法吧 因为对象的单例方法应该不会修改对象的所属类 那这个算什么？&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Mon, 23 Sep 2013 15:13:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/14320</link>
      <guid>https://ruby-china.org/topics/14320</guid>
    </item>
    <item>
      <title>Mac 基础上安装 thin 没有配置文件</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xjmatoMacBook-Air:sinatra-site xj$ thin start
No adapter found for /Users/xj/Documents/blog_github/sinatra-site
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;看了其他的文章 Linux 下安装后会有/etc/thin 的安装目录  我这边一运行就报错说找不到配置文件  直接启动 sinatra 是可以运行  log 显示用的是 thin 但就是我的其他机器不能访问 我本机用 ip 也不行 只能用 127.0.0.1 这样的本地地址&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xjmatoMacBook-Air:sinatra-site xj$ ruby web.rb 
== Sinatra/1.4.3 has taken the stage on 4567 for development with backup from Thin
&amp;gt;&amp;gt; Thin web server (v1.5.1 codename Straight Razor)
&amp;gt;&amp;gt; Maximum connections set to 1024
&amp;gt;&amp;gt; Listening on localhost:4567, CTRL+C to stop
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>woody1983</author>
      <pubDate>Fri, 20 Sep 2013 17:36:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/14246</link>
      <guid>https://ruby-china.org/topics/14246</guid>
    </item>
    <item>
      <title>eigenclass 和 Module 的问题</title>
      <description>&lt;p&gt;元编程#129Pages#Quiz&lt;/p&gt;

&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;MyModule&lt;/span&gt; 
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;my_method&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s1"&gt;'hello'&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;class&lt;/span&gt; &lt;span class="nc"&gt;Myclass&lt;/span&gt; 
  &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;MyModule&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;004&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;MyModule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for MyModule:Module&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;010&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for Myclass:Class&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;011&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; #&amp;lt;Myclass:0x861fa78&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;012&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#hello&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; nil&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 Module 中定义一个普通的实例方法 Myclass Include 该 Module 只有 Myclass 的实例 obj 可以调用
也就是说&lt;code&gt;my_method&lt;/code&gt;一直作为实例方法在 ancestors 中流窜&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;MyModule&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;my_method&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s1"&gt;'hello'&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;class&lt;/span&gt; &lt;span class="nc"&gt;Myclass&lt;/span&gt;
  &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;MyModule&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;007&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;MyModule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; "hello"&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for Myclass:Class&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; #&amp;lt;Myclass:0x8627980&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;010&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for #&amp;lt;Myclass:0x8627980&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第二次  将 Module 中的方法改成是了实例方法  结果正常 只有 MyModule 可以正常调用  但 Myclass 并没有继承到
难道在 Myclass 的 eigenclass 中并没有得到这个继承？&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;MyModule&lt;/span&gt; 
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;my_method&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s1"&gt;'hello'&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;class&lt;/span&gt; &lt;span class="nc"&gt;Myclass&lt;/span&gt; 
  &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;
    &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;MyModule&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;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;MyModule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for MyModule:Module&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;010&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; "hello"&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;011&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; #&amp;lt;Myclass:0x8627570&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;012&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for #&amp;lt;Myclass:0x8627570&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第三次和第一次的修改差异在 将 MyModule 植入到 Myclass 的 eigenclass 中了~ Myclass 可以正常调用该类方法&lt;/p&gt;
&lt;h3 id="可是作为 Myclass的实例对象obj却不能调用这个my_method了"&gt;可是作为 Myclass 的实例对象 obj 却不能调用这个 my_method 了&lt;/h3&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;MyModule&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;my_method&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s1"&gt;'hello'&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;class&lt;/span&gt; &lt;span class="nc"&gt;Myclass&lt;/span&gt; 
  &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;
    &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;MyModule&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;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;MyModule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; "hello"&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;010&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for Myclass:Class&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;011&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; #&amp;lt;Myclass:0x862bfa8&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;012&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for #&amp;lt;Myclass:0x862bfa8&amp;gt;&lt;/span&gt;

&lt;span class="c1"&gt;# my_method就算变成Module的类方法以后 还是被继承下来了 和普通的Include看起来效果好像是一样的&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第四次和第二次 得到的结果是一样的 也就是进没进 Myclass 的 eigenclass 都一样~ &lt;/p&gt;

&lt;p&gt;我把第四部分重写了一下 加入了另一个实例方法在 Module 中&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;MyModule&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;my_method&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s1"&gt;'hello'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;mine_method&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s1"&gt;'another 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="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Myclass&lt;/span&gt;
  &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;
    &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;MyModule&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;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;012&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mine_method&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; "another method"&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;013&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Myclass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;my_method&lt;/span&gt;
&lt;span class="c1"&gt;#NoMethodError: undefined method `my_method' for Myclass:Class&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;看来&lt;code&gt;class &amp;lt;&amp;lt; self&lt;/code&gt;这种方法只能把 MyModule 中的实例方法植入到 Myclass 的 eigenclass 中 类方法不行&lt;/p&gt;
&lt;h2 id="难道下面这么做是让 MyModule仅仅植入到 Myclass的eigenclass中 而在Myclass中是不可见的？"&gt;难道下面这么做是让 MyModule 仅仅植入到 Myclass 的 eigenclass 中 而在 Myclass 中是不可见的？&lt;/h2&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Myclass&lt;/span&gt; 
  &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;
    &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;MyModule&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;</description>
      <author>woody1983</author>
      <pubDate>Wed, 18 Sep 2013 11:48:09 +0800</pubDate>
      <link>https://ruby-china.org/topics/14206</link>
      <guid>https://ruby-china.org/topics/14206</guid>
    </item>
    <item>
      <title>书中德味</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;当向一个对象索要它的类时，Ruby并没有告诉你全部的真相。你得到的类并非你看到的类，而是一个对象特有的隐藏类。这个类称为该对象的eigenclass
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;元编程#117Page
#75 页  最后一大段“看看你的脚下...”&lt;/p&gt;

&lt;p&gt;为毛这本书我越看越觉得有点像龙与地下城手册啊~&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Tue, 17 Sep 2013 19:16:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/14186</link>
      <guid>https://ruby-china.org/topics/14186</guid>
    </item>
    <item>
      <title>黑咖真心好</title>
      <description>&lt;p&gt;我还记得 Zed Shaw 讨论健康的时候说的那句话：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;这个问题不大，我时常有点内疚。我发现我一天狂喝咖啡，正因为这样我想我也该喝点水。如果我没有头疼那倒有点不对。脱水的问题很难发觉，直到你发现的时候已经晚了。我的建议（我也要多做的）是，喝其他非纯净水的饮料时也喝一杯水。同样请勿喝苏打水。它们只是一堆伪糖，让你变胖导致糖尿病，还有它并没有给你产生水。喝纯黑咖啡吧，它们真他妈好，记着再喝些水。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;最近三周一直在忙 咖啡冲完了 没时间去买 就用速溶和马拉西亚旅游带回来的白咖啡来顶  现在说实话~ &lt;code&gt;点用没有&lt;/code&gt; 不但不提神 尤其是上一周 精神基本萎靡到&lt;code&gt;被妖降&lt;/code&gt;的地步~ 肚子也起来了~ 看来这玩意的糖分确实不少 配料理 除了 咖啡粉和白砂糖意外 剩余全是化学原料。。。&lt;/p&gt;

&lt;p&gt;我面前一包速溶咖啡的配料表&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;「白砂糖，葡萄糖浆，食用氢化植物油，稳定剂 (340ii,452i),酪蛋白酸钠，乳化剂 (471,481i),抗结剂 (554),酸度调节剂 (332ii),着色剂 (160b),咖啡粉」&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <author>woody1983</author>
      <pubDate>Sun, 15 Sep 2013 15:04:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/14134</link>
      <guid>https://ruby-china.org/topics/14134</guid>
    </item>
    <item>
      <title>各位有谁对枕头比较有研究的？</title>
      <description>&lt;p&gt;想换一个好一点的枕头  有人推荐的是记忆枕  那玩意舒服吗？&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Thu, 12 Sep 2013 17:28:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/14074</link>
      <guid>https://ruby-china.org/topics/14074</guid>
    </item>
    <item>
      <title>method_missing 多参数的情况下 想循环处理</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method_missing&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;respond_to?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, args: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, args class: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;class&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; and size: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

    &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;pc_id&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@data_source.send&lt;/span&gt; &lt;span class="s2"&gt;"get_&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_info"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pc_id&lt;/span&gt;
      &lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@data_source.send&lt;/span&gt; &lt;span class="s2"&gt;"get_&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_price"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pc_id&lt;/span&gt;
      &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;capitalize&lt;/span&gt;&lt;span class="si"&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;info&lt;/span&gt;&lt;span class="si"&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;price&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)"&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Pc&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;pc&lt;/span&gt;&lt;span class="si"&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;result&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;
      &lt;span class="n"&gt;result&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试代码 &lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kp"&gt;__FILE__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;'/Datasource'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kp"&gt;__FILE__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;'/Computer'&lt;/span&gt;

&lt;span class="n"&gt;ds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Datasource&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;cmp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Computer&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;ds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;cmp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cpu&lt;/span&gt; &lt;span class="mi"&gt;10001&lt;/span&gt;
&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;cmp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cpu&lt;/span&gt; &lt;span class="mi"&gt;10001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;10002&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="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="vi"&gt;@mysql&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;test&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;woody&lt;/span&gt; &lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# ruby main.rb&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;cpu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;args: &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;10001&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="ss"&gt;class: &lt;/span&gt;&lt;span class="no"&gt;Array&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ss"&gt;size: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="no"&gt;Pc10001&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="no"&gt;Cpu&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;i7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vg"&gt;$1700&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;cpu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;args: &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;10001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10002&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="ss"&gt;class: &lt;/span&gt;&lt;span class="no"&gt;Array&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ss"&gt;size: &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="no"&gt;Pc10001&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="no"&gt;Cpu&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;i7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vg"&gt;$1700&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我是看《Ruby 元编程》中的第二天的例子来做的  自己试着做了一个 Datasource 的类 貌似能用 动态分发的例子已经做完了  我在 GhostMethod 中 加了一些想法进去 比如  Pc 的 ID 是可以作为参数 直接赋值 甚至可以多赋值几个 循环查询并显出出来&lt;/p&gt;

&lt;p&gt;现在处理 method_missing 的时候 貌似没有循环&lt;/p&gt;

&lt;p&gt;我 Code 放在 &lt;a href="https://github.com/woody1983/ComputerDataSource/tree/ghost_method" rel="nofollow" target="_blank" title=""&gt;Github&lt;/a&gt;上了 有 2 个 Branch 出问题的这个在第二个  但 Datasource 的类 都是一样的&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Thu, 12 Sep 2013 15:19:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/14070</link>
      <guid>https://ruby-china.org/topics/14070</guid>
    </item>
    <item>
      <title>如何阅读一个 Ruby 项目?</title>
      <description>&lt;p&gt;如题~&lt;/p&gt;

&lt;p&gt;Ruby 一直处于学习状态中  还没阅读过完整的一个项目 各位都是怎么入手的？&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Tue, 10 Sep 2013 20:22:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/14015</link>
      <guid>https://ruby-china.org/topics/14015</guid>
    </item>
    <item>
      <title>关于 method_missing 中的 *args 迷惑</title>
      <description>&lt;p&gt;今天看了 ihower 的一个例子  是讲 method_missing 的&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;Car&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;go&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;place&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"go to &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;place&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method_missing&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_s&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;/^go_to_(.*)/&lt;/span&gt;
      &lt;span class="n"&gt;go&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vg"&gt;$1&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;super&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="n"&gt;car&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Car&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;car&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;go_to_taipei&lt;/span&gt;
&lt;span class="c1"&gt;# go to taipei&lt;/span&gt;
&lt;span class="n"&gt;car&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;go_to_shanghai&lt;/span&gt;
&lt;span class="c1"&gt;# go to shanghai&lt;/span&gt;
&lt;span class="n"&gt;car&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;go_to_japan&lt;/span&gt;
&lt;span class="c1"&gt;# go to japan&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我单独 print 过 args 是空的 所以我不太清楚  他调用 go 函数时 &lt;code&gt;$1&lt;/code&gt;是怎么获取的&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Mon, 09 Sep 2013 18:05:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/13991</link>
      <guid>https://ruby-china.org/topics/13991</guid>
    </item>
    <item>
      <title>求教 [二维数组]</title>
      <description>&lt;h2 id="折磨我一下午了"&gt;折磨我一下午了&lt;/h2&gt;
&lt;p&gt;我想创建一个&lt;code&gt;二维数组&lt;/code&gt; 每个数组的&lt;code&gt;元素是1到10&lt;/code&gt; ，每个数组的元素&lt;code&gt;长度为3&lt;/code&gt;，每个数组内容&lt;code&gt;不一样&lt;/code&gt;。&lt;/p&gt;

&lt;p&gt;说实话有点晕&lt;/p&gt;
&lt;h2 id="我语言表达有点问题  例子如下"&gt;我语言表达有点问题  例子如下&lt;/h2&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[
  [1, 2, 3],
  [1, 2, 4],
  [1, 2, 5],
  [1, 2, 6],
  [1, 2, 7],
...

]
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="总之就素..."&gt;总之就素...&lt;/h2&gt;
&lt;p&gt;&lt;img title=":x:" alt="🇽" src="https://twemoji.ruby-china.com/2/svg/1f1fd.svg" class="twemoji"&gt; 不能同时出现 [1,2,3] 和 [3,2,1]   虽然顺序不同 但元素一样
&lt;img title=":x:" alt="🇽" src="https://twemoji.ruby-china.com/2/svg/1f1fd.svg" class="twemoji"&gt; 单个数组的元素不能出现 [9,9,9]  同一个元素在一个 Array 里只能出现一次&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Fri, 19 Jul 2013 17:36:34 +0800</pubDate>
      <link>https://ruby-china.org/topics/12622</link>
      <guid>https://ruby-china.org/topics/12622</guid>
    </item>
    <item>
      <title>为什么不能更新主键?</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;
&lt;span class="no"&gt;Loading&lt;/span&gt; &lt;span class="n"&gt;development&lt;/span&gt; &lt;span class="n"&gt;environment&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;Rails&lt;/span&gt; &lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;001&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Zombie&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;Zombie&lt;/span&gt; &lt;span class="no"&gt;Load&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="no"&gt;SELECT&lt;/span&gt; &lt;span class="s2"&gt;"zombies"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;*&lt;/span&gt; &lt;span class="no"&gt;FROM&lt;/span&gt; &lt;span class="s2"&gt;"zombies"&lt;/span&gt; &lt;span class="no"&gt;ORDER&lt;/span&gt; &lt;span class="no"&gt;BY&lt;/span&gt; &lt;span class="s2"&gt;"zombies"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="s2"&gt;"id"&lt;/span&gt; &lt;span class="no"&gt;DESC&lt;/span&gt; &lt;span class="no"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;#&amp;lt;Zombie id: 3, name: "n29", bit: nil, age: 29, created_at: "2012-12-14 03:05:25", updated_at: "2012-12-14 03:05:25", email: nil, rotting: false&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;002&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;#&amp;lt;Zombie id: 3, name: "n29", bit: nil, age: 29, created_at: "2012-12-14 03:05:25", updated_at: "2012-12-14 03:05:25", email: nil, rotting: false&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;003&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;004&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;005&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;
&lt;span class="n"&gt;irb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="mo"&gt;006&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;
   &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;begin&lt;/span&gt; &lt;span class="n"&gt;transaction&lt;/span&gt;
   &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="no"&gt;UPDATE&lt;/span&gt; &lt;span class="s2"&gt;"zombies"&lt;/span&gt; &lt;span class="no"&gt;SET&lt;/span&gt; &lt;span class="s2"&gt;"updated_at"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'2012-12-14 03:58:25.810182'&lt;/span&gt; &lt;span class="no"&gt;WHERE&lt;/span&gt; &lt;span class="s2"&gt;"zombies"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="s2"&gt;"id"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;
   &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="n"&gt;commit&lt;/span&gt; &lt;span class="n"&gt;transaction&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Zombie&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;attr_accessible&lt;/span&gt; &lt;span class="ss"&gt;:age&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:bit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:name&lt;/span&gt;
  &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:fresh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"age &amp;lt; 30"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;has_one&lt;/span&gt; &lt;span class="ss"&gt;:brain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;dependent: :destroy&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;Brain&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;attr_accessible&lt;/span&gt; &lt;span class="ss"&gt;:flavor&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:zombie_id&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:zombie&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;foreign_key: :zombie_id&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;绑定的 foreign_key 都被更新了  主表的主键反而没有&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Fri, 14 Dec 2012 11:58:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/7562</link>
      <guid>https://ruby-china.org/topics/7562</guid>
    </item>
    <item>
      <title>我想尝试用 admin 去修改其他 User 的部分信息时遇到一些问题</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# PUT /users/1&lt;/span&gt;
&lt;span class="c1"&gt;# PUT /users/1.json&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update&lt;/span&gt;
  &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

  &lt;span class="n"&gt;respond_to&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;admin?&lt;/span&gt;
      &lt;span class="vi"&gt;@user.update_attributes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:name&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;:name&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;if&lt;/span&gt; &lt;span class="vi"&gt;@user.update_attributes&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;:user&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;notice: &lt;/span&gt;&lt;span class="s1"&gt;'User was successfully updated.'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="ss"&gt;:no_content&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;action: &lt;/span&gt;&lt;span class="s2"&gt;"edit"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;json: &lt;/span&gt;&lt;span class="vi"&gt;@user.errors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;status: :unprocessable_entity&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;update 动作有走这层过滤&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;correct_user&lt;/span&gt;
  &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="n"&gt;redirect_to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;users_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;unless&lt;/span&gt; &lt;span class="n"&gt;current_user?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;current_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;admin?&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题是现在提交编辑后 报 HTTP 406 错误 &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;HTTP 错误 406 
406 不可接受 
根据此请求中所发送的“接受”标题，此请求所标识的资源只能生成内容特征为“不可接受”的响应实体。 
如果问题依然存在，请与服务器的管理员联系。 &lt;/p&gt;
&lt;/blockquote&gt;</description>
      <author>woody1983</author>
      <pubDate>Wed, 12 Dec 2012 19:16:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/7503</link>
      <guid>https://ruby-china.org/topics/7503</guid>
    </item>
    <item>
      <title>请教如何引用一个 CSS 框架在 Rails 项目里</title>
      <description>&lt;p&gt;找到一个 Metro 风格的 CSS 框架 &lt;a href="https://github.com/olton/Metro-UI-CSS" rel="nofollow" target="_blank" title=""&gt;Metro-UI-CSS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;之前有在 Project 里引用过&lt;code&gt;gem 'bootstrap-sass', '2.0.0'&lt;/code&gt; 但像这种框架 Rails 有导入的标准或者说约定吗？&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Wed, 12 Dec 2012 18:52:27 +0800</pubDate>
      <link>https://ruby-china.org/topics/7501</link>
      <guid>https://ruby-china.org/topics/7501</guid>
    </item>
    <item>
      <title>向各位老师和前辈请教一个问题</title>
      <description>&lt;h2 id="怎样才算是懂一门语言？"&gt;怎样才算是懂一门语言？&lt;/h2&gt;
&lt;p&gt;不一定是 Ruby  比如 Haskell 之类的都算上 什么样的程度算是懂？这个程度有 Level 存在吗？&lt;/p&gt;</description>
      <author>woody1983</author>
      <pubDate>Mon, 10 Dec 2012 16:47:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/7439</link>
      <guid>https://ruby-china.org/topics/7439</guid>
    </item>
    <item>
      <title>我收集并在使用的一些 Ruby 学习资源列表</title>
      <description>&lt;h3 id="1、TryRuby"&gt;1、&lt;a href="http://www.tryruby.org" rel="nofollow" target="_blank" title=""&gt;TryRuby&lt;/a&gt;
&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:thumbsup: 墙裂推荐。
需要翻墙 配合codeschool一起练习的话 会有$5的代金券可以抵用学费
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="2、CodeCadeMy"&gt;2、&lt;a href="http://www.codecademy.com/zh/tracks/ruby" rel="nofollow" target="_blank" title=""&gt;CodeCadeMy&lt;/a&gt;
&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;全部做完，受益匪浅。
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="3、笨方法學 Ruby"&gt;3、&lt;a href="http://lrthw.github.com" rel="nofollow" target="_blank" title=""&gt;笨方法學 Ruby&lt;/a&gt;
&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;讲的很仔细  用的1.9的版本 各个知识点都讲了 不错
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="4、LearnStreet的Ruby板块"&gt;4、&lt;a href="http://www.learnstreet.com/" rel="nofollow" target="_blank" title=""&gt;LearnStreet 的 Ruby 板块&lt;/a&gt;
&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;目前免费，有一个全程的练习和配套的3个小项目练习 一个银行 一个度量转换 一个锻炼记忆力的。
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="5、TeamtreeHouse"&gt;5、&lt;a href="http://teamtreehouse.com" rel="nofollow" target="_blank" title=""&gt;TeamtreeHouse&lt;/a&gt;
&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;最近广告打的最猛的就是这个网站 收费 一个月25$  有Ruby 试听过一节课 暂时没报名
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="6、 CodeSchool"&gt;6、 &lt;a href="http://www.codeschool.com" rel="nofollow" target="_blank" title=""&gt;CodeSchool&lt;/a&gt;
&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;强烈推荐的 包含Git 什么的 都有 其中的Ruby Bits讲最佳实践的课程 现在可以免费停Level1 感觉不错 配合PDF和视频
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="2013-09-09 新增 RubyMonk"&gt;2013-09-09 新增 &lt;a href="http://rubymonk.com" rel="nofollow" target="_blank" title=""&gt;RubyMonk&lt;/a&gt;
&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;一句话无法概括我对这个站点的爱戴 总之去做吧 The Master会引导你的 因为他常说
The Master says : "More ramen to you!"
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="Ruby Style Guide 及 Rails Style Guide"&gt;&lt;a href="http://stylesror.github.com" rel="nofollow" target="_blank" title=""&gt;Ruby Style Guide 及 Rails Style Guide&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="内功心法的提升只有一个法门:"&gt;内功心法的提升只有一个法门：&lt;/h2&gt;
&lt;p&gt;&lt;img title=":point_right:" alt="👉" src="https://twemoji.ruby-china.com/2/svg/1f449.svg" class="twemoji"&gt; &lt;a href="http://ruby-doc.org/core-1.9.3" rel="nofollow" target="_blank" title=""&gt;Ruby.Doc&lt;/a&gt;  &lt;img title=":point_left:" alt="👈" src="https://twemoji.ruby-china.com/2/svg/1f448.svg" class="twemoji"&gt;&lt;/p&gt;
&lt;h2 id="感谢@user1 料好多啊"&gt;感谢&lt;a href="/sevk" class="user-mention" title="@sevk"&gt;&lt;i&gt;@&lt;/i&gt;sevk&lt;/a&gt; 料好多啊&lt;/h2&gt;&lt;h2 id="Ruby QuickRef"&gt;&lt;a href="http://www.zenspider.com/Languages/Ruby/QuickRef.html" rel="nofollow" target="_blank" title=""&gt;Ruby QuickRef&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="漫画教程 Why's (Poignant) Guide to Ruby"&gt;&lt;a href="http://mislav.uniqpath.com/poignant-guide/book/chapter-3.html" rel="nofollow" target="_blank" title=""&gt;漫画教程 Why's (Poignant) Guide to Ruby&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="RUBY语言入门教程.PDF"&gt;&lt;a href="http://download.csdn.net/detail/Sevk/659363" rel="nofollow" target="_blank" title=""&gt;RUBY 语言入门教程.PDF&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="Ruby manual 一页教程"&gt;&lt;a href="http://ruby.on-page.net/" rel="nofollow" target="_blank" title=""&gt;Ruby manual 一页教程&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="面向对象脚本语言 Ruby 参考手册"&gt;&lt;a href="http://www.kuqin.com/rubycndocument/man/index.html" rel="nofollow" target="_blank" title=""&gt;面向对象脚本语言 Ruby 参考手册&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="从其它语言到 Ruby"&gt;&lt;a href="http://www.ruby-lang.org/zh_cn/documentation/ruby-from-other-languages/" rel="nofollow" target="_blank" title=""&gt;从其它语言到 Ruby&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="感谢 :+1: @user2 的提供的ROR Resource"&gt;感谢 &lt;img title=":+1:" alt="👍" src="https://twemoji.ruby-china.com/2/svg/1f44d.svg" class="twemoji"&gt; &lt;a href="/sundevilyang" class="user-mention" title="@sundevilyang"&gt;&lt;i&gt;@&lt;/i&gt;sundevilyang&lt;/a&gt; 的提供的 ROR Resource&lt;/h2&gt;&lt;h2 id="Rails-Girls-Materials"&gt;&lt;a href="https://kippt.com/railsgirls/rails-girls-materials" rel="nofollow" target="_blank" title=""&gt;Rails-Girls-Materials&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="peepcode"&gt;&lt;a href="https://peepcode.com/screencasts/ruby-on-rails" rel="nofollow" target="_blank" title=""&gt;peepcode&lt;/a&gt;&lt;/h2&gt;&lt;h2 id="Rails宝典via CSDN  :+1: via @user3"&gt;
&lt;a href="http://blog.csdn.net/blacksource/article/details/7101874" rel="nofollow" target="_blank" title=""&gt;Rails 宝典 via CSDN&lt;/a&gt;  &lt;img title=":+1:" alt="👍" src="https://twemoji.ruby-china.com/2/svg/1f44d.svg" class="twemoji"&gt; via &lt;a href="/bjyuxiao" class="user-mention" title="@bjyuxiao"&gt;&lt;i&gt;@&lt;/i&gt;bjyuxiao&lt;/a&gt;
&lt;/h2&gt;&lt;h2 id="Ruby 工具箱 感谢1楼 :+1: @user4"&gt;Ruby 工具箱 感谢 1 楼 &lt;img title=":+1:" alt="👍" src="https://twemoji.ruby-china.com/2/svg/1f44d.svg" class="twemoji"&gt; &lt;a href="/woaigithub" class="user-mention" title="@woaigithub"&gt;&lt;i&gt;@&lt;/i&gt;woaigithub&lt;/a&gt;
&lt;/h2&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://api.rubyonrails.org/
http://ruby-doc.org/
http://apidock.com/
http://guides.rubyonrails.org/
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>woody1983</author>
      <pubDate>Tue, 04 Dec 2012 08:59:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/7284</link>
      <guid>https://ruby-china.org/topics/7284</guid>
    </item>
  </channel>
</rss>
