<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jjzxcc (Feo)</title>
    <link>https://ruby-china.org/jjzxcc</link>
    <description>技术改变世界。</description>
    <language>en-us</language>
    <item>
      <title>此贴关闭</title>
      <description>&lt;p&gt;此贴关闭&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Tue, 18 May 2021 16:52:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/41281</link>
      <guid>https://ruby-china.org/topics/41281</guid>
    </item>
    <item>
      <title>[深圳] Bindo 诚聘 Ruby 开发工程师 (已结束)</title>
      <description>&lt;h2 id="一站式POS系统"&gt;&lt;strong&gt;一站式 POS 系统&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Bindo 不只是一個銷售點。從簡單易用的庫存管理和條形碼掃描，到強大的報告分析功能，BindoPOS 系統設計成為傳統業務一站式的解決方案。拥有數十年零售軟件和電子商貿領域的經驗，我們的團隊研發了 BindoPOS 系統。簡單易用，適合任何人使用，同時也提供多種特色功能和工具幫您打造生意成功。還等什麼？開始使用 Bindo 的優化經營方式，並真正做到省錢省時。&lt;/p&gt;

&lt;p&gt;产品主页：&lt;/p&gt;

&lt;p&gt;Bindo POS [&lt;a href="https://bindopos.com/" rel="nofollow" target="_blank"&gt;https://bindopos.com/&lt;/a&gt;]&lt;/p&gt;
&lt;h2 id="岗位职责："&gt;
&lt;strong&gt;岗位职责&lt;/strong&gt;：&lt;/h2&gt;
&lt;p&gt;负责公司后端 API 开发&lt;/p&gt;

&lt;p&gt;负责公司后端程序的架构和优化&lt;/p&gt;

&lt;p&gt;负责公司数据分析平台的开发&lt;/p&gt;
&lt;h2 id="岗位要求："&gt;
&lt;strong&gt;岗位要求&lt;/strong&gt;：&lt;/h2&gt;
&lt;p&gt;三年以上 Ruby 开发经验&lt;/p&gt;

&lt;p&gt;熟练掌握 Ruby 或者任意一种 OO 开发语言&lt;/p&gt;

&lt;p&gt;熟练掌握 Rails, Sinatra, Grape 的开发&lt;/p&gt;

&lt;p&gt;有良好的开发习惯，扎实的编程功底，能写出优雅高效的代码&lt;/p&gt;

&lt;p&gt;具备良好的学习能力、问题解决能力、沟通能力和团队合作能力&lt;/p&gt;
&lt;h2 id="加分项："&gt;
&lt;strong&gt;加分项&lt;/strong&gt;：&lt;/h2&gt;
&lt;p&gt;高并发的大型电商网站的开发经验&lt;/p&gt;

&lt;p&gt;大数据处理的经验&lt;/p&gt;

&lt;p&gt;Mircoservice 架构开发经验&lt;/p&gt;

&lt;p&gt;开源项目的贡献者&lt;/p&gt;
&lt;h2 id="薪酬福利待遇："&gt;
&lt;strong&gt;薪酬福利待遇&lt;/strong&gt;：&lt;/h2&gt;
&lt;p&gt;工资待遇：18k-25k&lt;/p&gt;

&lt;p&gt;五险一金：试用期即为员工缴纳养老保险、医疗保险、失业保险、工伤保险、生育保险及住房公积金&lt;/p&gt;

&lt;p&gt;带薪假期：员工享有带薪年假、婚假等公假&lt;/p&gt;

&lt;p&gt;期权计划：公司会对优秀员工提供期权奖励&lt;/p&gt;
&lt;h2 id="联系方式:"&gt;
&lt;strong&gt;联系方式&lt;/strong&gt;:&lt;/h2&gt;
&lt;p&gt;如果有意向或者想具体了解的同学，可以联系 feo.chen@bindo.com，最好贴上 LinkedIn 或者简历 : )&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Fri, 02 Mar 2018 12:01:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/35125</link>
      <guid>https://ruby-china.org/topics/35125</guid>
    </item>
    <item>
      <title>如何成为一个靠谱的 Ruby 面试官？</title>
      <description>&lt;p&gt;今天临时和同事被老大拉去面试人了。由于之前比较少有面试别人的经验，外加时间仓促，也没有准备要面试的内容，面试过程比较凌乱，在这里和今天来面试的小伙伴说声抱歉。在这里想请教下大家，如何才能成为一个靠谱的面试官，面试中如何才能比较真实的考察出被面试者的真实水平？&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Wed, 20 Apr 2016 22:18:38 +0800</pubDate>
      <link>https://ruby-china.org/topics/29798</link>
      <guid>https://ruby-china.org/topics/29798</guid>
    </item>
    <item>
      <title>求解释下这段代码的意思，谢谢</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:unread_desc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;unread_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"id = ANY ('{&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;unread_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;','&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;}'::int[]) DESC"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;求解释&lt;code&gt;order("id = ANY ('{#{unread_list.join(',')}}'::int[]) DESC")&lt;/code&gt;, 特别是&lt;code&gt;::int[]&lt;/code&gt;在这里的意思，谢谢。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Wed, 20 Apr 2016 22:11:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/29797</link>
      <guid>https://ruby-china.org/topics/29797</guid>
    </item>
    <item>
      <title>请教如何解密 SM4 算法加密后的文件？</title>
      <description>&lt;p&gt;文件使用 SM4 算法加密的，请问要如何解密啊？&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Tue, 03 Sep 2013 15:56:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/13857</link>
      <guid>https://ruby-china.org/topics/13857</guid>
    </item>
    <item>
      <title>看 V2EX 上分享的一个网站，被瞬间亮瞎了有木有！！！</title>
      <description>&lt;p&gt;&lt;a href="http://www.dlsaiko.com/Index.html" rel="nofollow" target="_blank"&gt;http://www.dlsaiko.com/Index.html&lt;/a&gt;
太黄太暴力了有木有，瞬间亮瞎了我的钛合金狗眼。&lt;/p&gt;

&lt;p&gt;原帖地址：&lt;a href="http://www.v2ex.com/t/81077#reply40" rel="nofollow" target="_blank"&gt;http://www.v2ex.com/t/81077#reply40&lt;/a&gt;&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Tue, 03 Sep 2013 11:27:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/13845</link>
      <guid>https://ruby-china.org/topics/13845</guid>
    </item>
    <item>
      <title>可以通过 web 端操作串口吗?</title>
      <description>&lt;p&gt;有个类似给密码器设置密钥的需求，想通过 web 端访问操作该密码器的串口来实现，不知道是否可行？
没有接触过这块，网上也没多少可用信息，求指教，最好有相关资料推荐，谢谢。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Fri, 09 Aug 2013 11:34:38 +0800</pubDate>
      <link>https://ruby-china.org/topics/13192</link>
      <guid>https://ruby-china.org/topics/13192</guid>
    </item>
    <item>
      <title>无尽之剑 2、Tiny Wings、Superbrothers 等游戏软件限时免费。。。要下的赶紧下啊。</title>
      <description>&lt;p&gt;无尽之剑 2、Tiny Wings、Superbrothers、BADLAND 等游戏限时免费。。。要下的赶紧下啊。
&lt;a href="http://www.36kr.com/p/204449.html" rel="nofollow" target="_blank"&gt;http://www.36kr.com/p/204449.html&lt;/a&gt;
&lt;a href="http://www.ifanr.com/app/312324#wechat_redirect" rel="nofollow" target="_blank"&gt;http://www.ifanr.com/app/312324#wechat_redirect&lt;/a&gt;&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Mon, 08 Jul 2013 16:42:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/12349</link>
      <guid>https://ruby-china.org/topics/12349</guid>
    </item>
    <item>
      <title>[Solved] 请问如何转码为压缩 BCD 码存储?</title>
      <description>&lt;p&gt;有一个字符串&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="mi"&gt;1500000001021234567890120000000000000000000000000088899910&lt;/span&gt;&lt;span class="no"&gt;EBE750C7B5E36CB02D3DD3BEB5DE6F002EA242E367C0C099BDD6863F6F3B5E739EC6D6F71F12E117A1B65418A8C096BEDA64E67EE6CD62C55E5F5D927F53A1D11234567890120000000000000000000000000088899910EBE750C7B5E36CB02D3DD3BEB5DE6F002EA242E367C0C099BDD6863F6F3B5E739EC6D6F71F12E117A1B65418A8C096BEDA64E67EE6CD62C55E5F5D927F53A1D1&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="mi"&gt;3135&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3031&lt;/span&gt; &lt;span class="mi"&gt;3032&lt;/span&gt; &lt;span class="mi"&gt;3132&lt;/span&gt; &lt;span class="mi"&gt;3334&lt;/span&gt;
&lt;span class="mi"&gt;3536&lt;/span&gt; &lt;span class="mi"&gt;3738&lt;/span&gt; &lt;span class="mi"&gt;3930&lt;/span&gt; &lt;span class="mi"&gt;3132&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt;
&lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt;
&lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3838&lt;/span&gt; &lt;span class="mi"&gt;3839&lt;/span&gt; &lt;span class="mi"&gt;3939&lt;/span&gt; &lt;span class="mi"&gt;3130&lt;/span&gt; &lt;span class="mi"&gt;4542&lt;/span&gt; &lt;span class="mi"&gt;4547&lt;/span&gt; &lt;span class="mi"&gt;3530&lt;/span&gt;
&lt;span class="mi"&gt;4337&lt;/span&gt; &lt;span class="mi"&gt;4235&lt;/span&gt; &lt;span class="mi"&gt;4445&lt;/span&gt; &lt;span class="mi"&gt;3646&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3245&lt;/span&gt; &lt;span class="mi"&gt;4132&lt;/span&gt; &lt;span class="mi"&gt;3432&lt;/span&gt;
&lt;span class="o"&gt;....&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我现在需要将他保存为压缩 BCD 码。他的十六进制显示应该为&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="mi"&gt;1500&lt;/span&gt; &lt;span class="mo"&gt;0000&lt;/span&gt; &lt;span class="mo"&gt;0102&lt;/span&gt; &lt;span class="mi"&gt;1234&lt;/span&gt; &lt;span class="mi"&gt;5678&lt;/span&gt; &lt;span class="mi"&gt;9012&lt;/span&gt; &lt;span class="mo"&gt;0000&lt;/span&gt; &lt;span class="mo"&gt;0000&lt;/span&gt; 
&lt;span class="mo"&gt;0000&lt;/span&gt; &lt;span class="mo"&gt;0000&lt;/span&gt; &lt;span class="mo"&gt;0000&lt;/span&gt; &lt;span class="mo"&gt;0000&lt;/span&gt; &lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="mi"&gt;88&lt;/span&gt; &lt;span class="mi"&gt;8999&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="n"&gt;eb&lt;/span&gt; &lt;span class="n"&gt;e750&lt;/span&gt; 
&lt;span class="n"&gt;c7b5&lt;/span&gt; &lt;span class="n"&gt;e36c&lt;/span&gt; &lt;span class="n"&gt;b02d&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;dd3&lt;/span&gt; &lt;span class="n"&gt;beb5&lt;/span&gt; &lt;span class="n"&gt;de6f&lt;/span&gt; &lt;span class="mo"&gt;002&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="n"&gt;a242&lt;/span&gt;
&lt;span class="n"&gt;e367&lt;/span&gt; &lt;span class="n"&gt;c0c0&lt;/span&gt; &lt;span class="mi"&gt;99&lt;/span&gt;&lt;span class="n"&gt;bd&lt;/span&gt; &lt;span class="n"&gt;d686&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;f6f&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;b5e&lt;/span&gt; &lt;span class="mi"&gt;739&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="n"&gt;c6d6&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不知道该怎么处理，求指导。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Mon, 01 Jul 2013 16:42:16 +0800</pubDate>
      <link>https://ruby-china.org/topics/12147</link>
      <guid>https://ruby-china.org/topics/12147</guid>
    </item>
    <item>
      <title>Mac 下 sublime 怎么调出顶部菜单栏？</title>
      <description>&lt;p&gt;刚换 mac，死活调不出 sublime 的顶部菜单栏。
用 Ctrl+Shifp+p 也没有 View:Toggle Menu 这个选项。
求助啊。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Thu, 27 Jun 2013 16:37:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/12041</link>
      <guid>https://ruby-china.org/topics/12041</guid>
    </item>
    <item>
      <title>求教关于 grape api 的 login 方法要怎么写</title>
      <description>&lt;p&gt;我现在的 login 方法为&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;create&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_by_email&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:error&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'该账户已锁定，请先解锁。'&lt;/span&gt;
      &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="n"&gt;new_session_path&lt;/span&gt;
    &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="vi"&gt;@user.authenticate&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&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;:last_login&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;nil?&lt;/span&gt;
      &lt;span class="n"&gt;sign_in&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
      &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:notice&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"第一次登录，请先修改密码。"&lt;/span&gt;
      &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="n"&gt;edit_password_users_path&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="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="vi"&gt;@user.authenticate&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:last_login&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;nil?&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;:failed_attempts&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&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;:last_login&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;sign_in&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
      &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:success&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"用户登录成功。"&lt;/span&gt;
      &lt;span class="n"&gt;redirect_back_or&lt;/span&gt;  &lt;span class="n"&gt;current_users_path&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:error&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'邮箱或者密码错误。'&lt;/span&gt;
      &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="n"&gt;new_session_path&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;我这样写 grape api 不知道对不对？&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;post&lt;/span&gt; &lt;span class="s1"&gt;'login'&lt;/span&gt; &lt;span class="k"&gt;do&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_by_email&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="n"&gt;error!&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"该账户已锁定，请先解锁。"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="vi"&gt;@user.authenticate&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&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;:last_login&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;nil?&lt;/span&gt;
      &lt;span class="n"&gt;sign_in&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt; &lt;span class="s2"&gt;"/edit_password"&lt;/span&gt;
    &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="vi"&gt;@user.authenticate&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:last_login&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;nil?&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;:failed_attempts&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&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;:last_login&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;sign_in&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt;  &lt;span class="s2"&gt;"/current"&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;error!&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"邮箱或者密码错误。"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;400&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;/code&gt;&lt;/pre&gt;
&lt;p&gt;求指点。。。。。。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Wed, 15 May 2013 14:39:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/10996</link>
      <guid>https://ruby-china.org/topics/10996</guid>
    </item>
    <item>
      <title>请问下关于 Grape 的 login 的 POST 方法。。。。</title>
      <description>&lt;p&gt;controller 里的方法为&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;create&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_by_email&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="n"&gt;new_session_path&lt;/span&gt;
    &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="vi"&gt;@user.authenticate&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; 
      &lt;span class="n"&gt;sign_in&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
      &lt;span class="n"&gt;redirect_back_or&lt;/span&gt;  &lt;span class="n"&gt;current_users_path&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="n"&gt;new_session_url&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;grape 的 api 方法为&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;post&lt;/span&gt; &lt;span class="s1"&gt;'login'&lt;/span&gt; &lt;span class="k"&gt;do&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_by_email&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt; &lt;span class="s1"&gt;'/users/login'&lt;/span&gt;
    &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="vi"&gt;@user.authenticate&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; 
      &lt;span class="n"&gt;sign_in&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt;  &lt;span class="s1"&gt;'/users/current'&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt; &lt;span class="s1"&gt;'/users/login'&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;grape 的 helper 方法有&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;current_user&lt;/span&gt;
      &lt;span class="vi"&gt;@current_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_by_remember_token&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&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;current_user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="vi"&gt;@current_user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user&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;sign_in&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&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;:remember_me&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;permanent&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remember_token&lt;/span&gt;
      &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remember_token&lt;/span&gt;
      &lt;span class="k"&gt;end&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;current_user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user&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="n"&gt;post&lt;/span&gt; &lt;span class="s1"&gt;'login'&lt;/span&gt; &lt;span class="k"&gt;do&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_by_email&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt; &lt;span class="s1"&gt;'/users/login'&lt;/span&gt;
    &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&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;:locked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="vi"&gt;@user.authenticate&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;:session&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="ss"&gt;:password&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; 
      &lt;span class="n"&gt;sign_in&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt;  &lt;span class="s1"&gt;'/users/current'&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;redirect&lt;/span&gt; &lt;span class="s1"&gt;'/users/login'&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;我在 sign_in &lt;a href="/user" class="user-mention" title="@user"&gt;&lt;i&gt;@&lt;/i&gt;user&lt;/a&gt;这步打印出 current_user 是有值的，但是 redirect  '/users/current'不成功，会应为 current_user 值为空而被重定位。求教原因。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Tue, 14 May 2013 12:17:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/10973</link>
      <guid>https://ruby-china.org/topics/10973</guid>
    </item>
    <item>
      <title>关于需要先登录的 API，求助。。。。</title>
      <description>&lt;p&gt;在用 Grape 写 api，想请问下对于那些需要先登录才能有返回的 api，要怎么写或者说是要怎么测试了呢。
比如
api 文件里有&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;resource&lt;/span&gt; &lt;span class="ss"&gt;:organization&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
   &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="s1"&gt;'current'&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="no"&gt;Organization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by_id&lt;/span&gt;&lt;span class="p"&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="ss"&gt;:organization_id&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;/code&gt;&lt;/pre&gt;
&lt;p&gt;helper 方法&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;current_user&lt;/span&gt;
    &lt;span class="vi"&gt;@current_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_by_remember_token&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我测这个 current 方法的时候要怎么先登录呢？&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Mon, 13 May 2013 15:21:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/10947</link>
      <guid>https://ruby-china.org/topics/10947</guid>
    </item>
    <item>
      <title>[已解决] socket 编程求助。。。。</title>
      <description>&lt;p&gt;我这边有个 server 以 socket 同步短联接方式提供类似生成支付密码的功能。
要求接收数据包结构为&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;名称&lt;/span&gt;           &lt;span class="n"&gt;类型&lt;/span&gt;    &lt;span class="n"&gt;长度&lt;/span&gt;
&lt;span class="o"&gt;-----------------------------------&lt;/span&gt;
&lt;span class="n"&gt;账号&lt;/span&gt;           &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;32&lt;/span&gt;
&lt;span class="n"&gt;签发日期&lt;/span&gt;        &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="n"&gt;凭证种类&lt;/span&gt;        &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;签发金额&lt;/span&gt;        &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;16&lt;/span&gt;
&lt;span class="n"&gt;凭证号码&lt;/span&gt;        &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="n"&gt;收方账号&lt;/span&gt;        &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;32&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="n"&gt;名称&lt;/span&gt;           &lt;span class="n"&gt;类型&lt;/span&gt;    &lt;span class="n"&gt;长度&lt;/span&gt;
&lt;span class="o"&gt;-----------------------------------&lt;/span&gt;
&lt;span class="n"&gt;返回码&lt;/span&gt;         &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;6&lt;/span&gt;
&lt;span class="n"&gt;支付密码&lt;/span&gt;       &lt;span class="n"&gt;字符&lt;/span&gt;    &lt;span class="mi"&gt;16&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个 server 功能已经实现了 
我这边作为 client 要怎么通过 socket 调用这个功能啊 
纯小白一个，求助啊。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Mon, 22 Apr 2013 16:01:23 +0800</pubDate>
      <link>https://ruby-china.org/topics/10402</link>
      <guid>https://ruby-china.org/topics/10402</guid>
    </item>
    <item>
      <title>重写 destroy 方法有问题。</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;destroy&lt;/span&gt;
  &lt;span class="vi"&gt;@message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Message&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;new_message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Message&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;new_message&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:user_email&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;slice!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="si"&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="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;;*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="vi"&gt;@message.update_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:user_email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;new_message&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:user_email&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@message&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:user_email&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;empty?&lt;/span&gt;
    &lt;span class="vi"&gt;@message.destroy&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="n"&gt;messages_path&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这段代码我单独在 rails c 里面跑可以删除当前的 email。
在程序中只有当前 user_email 为唯一的时候可以删除成功。
当 user_email 的 email 多于 2 个时，无法删除当前 email。
不知道是什么原因，求解。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Tue, 05 Mar 2013 17:10:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/9150</link>
      <guid>https://ruby-china.org/topics/9150</guid>
    </item>
    <item>
      <title>[已解决] 弱弱的问一句让 html 输出自动换行的方法？</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;%= @message.user_email %&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输出的结果太长。请问在前面加什么方法让它在 view 显示的时候自动换行？&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Tue, 05 Mar 2013 15:05:22 +0800</pubDate>
      <link>https://ruby-china.org/topics/9140</link>
      <guid>https://ruby-china.org/topics/9140</guid>
    </item>
    <item>
      <title>请问 Rabl 怎么表示 create 这类的 post request。</title>
      <description>&lt;p&gt;在用 rabl gem 来开发 ruby api。
表示 show 一类的 get request 很简单，只需要建 show.json.html 文件&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;#show.json.html&lt;/span&gt;
&lt;span class="n"&gt;object&lt;/span&gt; &lt;span class="vi"&gt;@user&lt;/span&gt;
&lt;span class="n"&gt;attributes&lt;/span&gt; &lt;span class="ss"&gt;:id&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="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:last_login&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是像 create 这种 post request 要怎么用呢？
建一个 create.json.html 文件？
还有就是这类的 api 要怎么验证呢？用 curl？谢谢。&lt;/p&gt;</description>
      <author>jjzxcc</author>
      <pubDate>Tue, 26 Feb 2013 09:46:16 +0800</pubDate>
      <link>https://ruby-china.org/topics/8936</link>
      <guid>https://ruby-china.org/topics/8936</guid>
    </item>
  </channel>
</rss>
