<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>luoyegufei</title>
    <link>https://ruby-china.org/luoyegufei</link>
    <description>做个勤劳的小蜜蜂</description>
    <language>en-us</language>
    <item>
      <title>Render action 中传递参数是否可行？</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;new&lt;/span&gt;
    &lt;span class="n"&gt;authorize!&lt;/span&gt; &lt;span class="ss"&gt;:create&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;FundRemitBulk&lt;/span&gt;
    &lt;span class="vi"&gt;@allocation_type&lt;/span&gt; &lt;span class="o"&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;:allocation_type&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="vi"&gt;@fund_remit_bulk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;FundRemitBulk&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;default_customer_corporate_bank&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="no"&gt;CustomerCorporateBank&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="ss"&gt;:first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:conditions&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:default_payment&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="vi"&gt;@fund_remit_bulk.customer_corporate_bank_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
      &lt;span class="n"&gt;default_customer_corporate_bank&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;try&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="vi"&gt;@fund_remit_bulk.account_bank&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
      &lt;span class="n"&gt;default_customer_corporate_bank&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;try&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:account_bank&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@fund_remit_bulk.account_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="n"&gt;default_customer_corporate_bank&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;try&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:account_number&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;@allocation_type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"asset_securitization"&lt;/span&gt;
      &lt;span class="n"&gt;fund_allocations&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;FundAllocation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abs_allocations&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;fund_allocations&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;FundAllocation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fund_outflow_allocations&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="vi"&gt;@fund_allocations&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fund_allocations&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:allocated&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;false&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="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="c1"&gt;# new.html.erb&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;xml&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;:xml&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="vi"&gt;@fund_remit_bulk&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;上述代码是 FundRemitBulk 的 new，项目中多个模块中都有 new_fund_remit_bulk 的入口，是以 allocation_type 来区分的，即 fund_remit_bulks/new?allocation_type=**;
fund_remit_bulk.rb 中对多个字段进行 validates_presence_of 处理，save 失败后，会在相应位置显示非空错误信息（只是需要保证的效果）&lt;/p&gt;

&lt;p&gt;下面是 create 的异常捕获&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;rescue&lt;/span&gt; &lt;span class="no"&gt;Exception&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;
   &lt;span class="n"&gt;msg&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="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
   &lt;span class="vi"&gt;@fund_remit_bulk.errors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="k"&gt;raise&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;Rollback&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;msg&lt;/span&gt;
 &lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;e.message 显示的是“数据校验未通过”,显然不是我想要的&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&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="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;new_fund_remit_bulk_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:allocation_type&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                  &lt;span class="ss"&gt;:alert&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="vi"&gt;@fund_remit_bulk.errors&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:base&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="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&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;redirect_to 可以保证 create 失败后停留在正确的新建页面，但是却不能显示非空错误信息，用 render :action =&amp;gt; "new"可以实现，但是需要指定 allocation_type。
能否用 render？该如何传参？网上查了不少，但是没看到有谁这么用&lt;/p&gt;</description>
      <author>luoyegufei</author>
      <pubDate>Wed, 04 Nov 2015 15:52:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/27950</link>
      <guid>https://ruby-china.org/topics/27950</guid>
    </item>
    <item>
      <title>工作一年还是新手，很喜欢 ruby，却又不知道该怎么去深入学习，求前辈们指点</title>
      <description>&lt;p&gt;工作了一年多，大学时是计算机科学与技术专业嵌入式方向，粗略的学过 C、C++，大三暑假参加过一个为期三个月的 Android 培训，毕业之后进入一家小公司做 ruby 开发。
        接触 ruby 之前，我觉得编程是一件很枯燥的事，随着慢慢的深入了解 ruby on rails，我开始觉得敲代码其实也是一件很有趣的事。从最开始的从未听说过 ruby，到现在能独立负责系统多个模块的功能，这中间全靠自学，自己看书，问同事，但是现在学到的知识都是为当前开发的这款金融租赁系统。
        每天刷着社区的时候，看着大家不断的跳出一个个让我一头雾水的知识点，真心的觉得自己需要学习的地方还有很多很多，可是又不知道该从哪里下手，还望各位前辈们指点迷津，小弟不胜感激！（目前学到的知识都是围绕着实现模块功能的 MVC，对于网络、安全，还有一些不知道的知识都是一种完全不了解的状态）&lt;/p&gt;</description>
      <author>luoyegufei</author>
      <pubDate>Tue, 20 Oct 2015 10:21:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/27743</link>
      <guid>https://ruby-china.org/topics/27743</guid>
    </item>
    <item>
      <title>rake db:version 问题</title>
      <description>&lt;p&gt;今天在查看数据库版本的时候发现一个问题：数据库版本显示的是 20140902，但是最新的 migration 是 20140901（其他的分支上的 migration 是 20140902），为什么我查到的数据库版本不是 20140901 呢？&lt;/p&gt;</description>
      <author>luoyegufei</author>
      <pubDate>Tue, 09 Sep 2014 10:42:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/21430</link>
      <guid>https://ruby-china.org/topics/21430</guid>
    </item>
    <item>
      <title>使用 Ransack 进行多条件搜索，如何实现对关联字段的搜索</title>
      <description>&lt;p&gt;比如说我的查询是在项目 project 中，项目里面的客户名称是来自于其关联的 corporates 表中的 name，那么我应该如何根据这个客户名称来查找对应的项目呢？在客户里面查找是 f.label :name_cont, "客户名称"   f.text_field :name_cont，那么在项目中应该怎么修改呢？&lt;/p&gt;</description>
      <author>luoyegufei</author>
      <pubDate>Wed, 20 Aug 2014 14:44:23 +0800</pubDate>
      <link>https://ruby-china.org/topics/21139</link>
      <guid>https://ruby-china.org/topics/21139</guid>
    </item>
    <item>
      <title>有支持多条件搜索的 GEM 吗？</title>
      <description>&lt;p&gt;搜索条件太多，如果去匹配每一个条件的话，代码量太大不好维护，有适合这种多条件搜索的 gem 吗？&lt;/p&gt;</description>
      <author>luoyegufei</author>
      <pubDate>Tue, 19 Aug 2014 12:09:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/21113</link>
      <guid>https://ruby-china.org/topics/21113</guid>
    </item>
  </channel>
</rss>
