<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>rimer (Rimer)</title>
    <link>https://ruby-china.org/rimer</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Mongoid 能否支持虚拟字段？</title>
      <description>&lt;p&gt;我刚刚从 Node.js &amp;amp; Mongoose 转来，尝试使用 Grape 和 Mongoid 重写以前的程序。现在遇到了一个问题：&lt;/p&gt;

&lt;p&gt;Mongoose 支持 Virtual 字段（ &lt;a href="http://mongoosejs.com/docs/guide.html#virtuals" rel="nofollow" target="_blank"&gt;http://mongoosejs.com/docs/guide.html#virtuals&lt;/a&gt; ），比如有两个 key，firstName 和 lastName，可以建立一个 Virtual 的 name 字段以方便使用，同时 Mongoose 不会将 name 字段存入数据库中。&lt;/p&gt;

&lt;p&gt;然而我发现在 Mongoid 的文档中没有找到对应的内容，我自己尝试如下方法：&lt;/p&gt;

&lt;p&gt;class User
      include Mongoid::Document
      field :firstName, type: String
      field :lastName, type: String&lt;/p&gt;

&lt;p&gt;def name
        "#{self.firstName} #{self.lastName}"
      end&lt;/p&gt;

&lt;p&gt;end&lt;/p&gt;

&lt;p&gt;这样可以实现通过 user.name 得到用户的信息，但是想使用如下方式直接将其作为 Grape 的 Response body 时则不会包含 name 字段：&lt;/p&gt;

&lt;p&gt;get do
          User.find(...)
        end&lt;/p&gt;

&lt;p&gt;我猜想也许是 Mongoid 对 to_json 做了处理，但更进一步的解决方法就不知道了。不知道大家有没有什么解决方案，非常感谢~(≧▽≦)/~&lt;/p&gt;

&lt;p&gt;话说体验了几天，Ruby 真的很好用~&lt;/p&gt;</description>
      <author>rimer</author>
      <pubDate>Thu, 11 Jul 2013 02:04:38 +0800</pubDate>
      <link>https://ruby-china.org/topics/12414</link>
      <guid>https://ruby-china.org/topics/12414</guid>
    </item>
    <item>
      <title>在类外使用 “@” 符号有什么作用呢？</title>
      <description>&lt;p&gt;我在看 redis-rb(&lt;a href="https://github.com/redis/redis-rb" rel="nofollow" target="_blank"&gt;https://github.com/redis/redis-rb&lt;/a&gt;) 的文档时看到下面的代码：&lt;/p&gt;

&lt;p&gt;redis.pipelined do
      &lt;a href="/set" class="user-mention" title="@set"&gt;&lt;i&gt;@&lt;/i&gt;set&lt;/a&gt; = redis.set "foo", "bar"
      &lt;a href="/incr" class="user-mention" title="@incr"&gt;&lt;i&gt;@&lt;/i&gt;incr&lt;/a&gt; = redis.incr "baz"
    end&lt;/p&gt;

&lt;p&gt;&lt;a href="/set.value" class="user-mention" title="@set.value"&gt;&lt;i&gt;@&lt;/i&gt;set.value&lt;/a&gt;
    # =&amp;gt; "OK"&lt;/p&gt;

&lt;p&gt;&lt;a href="/incr.value" class="user-mention" title="@incr.value"&gt;&lt;i&gt;@&lt;/i&gt;incr.value&lt;/a&gt;
    # =&amp;gt; 1&lt;/p&gt;

&lt;p&gt;想问一下大家为什么要在 set 变量前加@符号？不在类中的@符号的含义是什么呢？谢谢！&lt;/p&gt;</description>
      <author>rimer</author>
      <pubDate>Tue, 15 Jan 2013 00:49:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/8074</link>
      <guid>https://ruby-china.org/topics/8074</guid>
    </item>
  </channel>
</rss>
