<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Insub (Insub)</title>
    <link>https://ruby-china.org/Insub</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>一个方法中有多个条件判断，当其中一项不符合即中断并返回结果，怎么写比较合理简洁一点？</title>
      <description>&lt;p&gt;在一个方法中我可能有多个条件判断，如条件 A，B，C，D，顺序执行，全部成功则返回成功结果，如果其中任意一项条件不满足的话，不再执行剩余条件判断，直接返回带错误信息的失败。
大概就是像下面代码这种情况，怎么写比较合理简洁一点呢？&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;show&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;condition_A&lt;/span&gt;
     &lt;span class="c1"&gt;# 跳到 render 400 并返回一个 A 报错&lt;/span&gt;
   &lt;span class="k"&gt;end&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;condition_B&lt;/span&gt;
     &lt;span class="c1"&gt;# 跳到 render 400 并返回一个 B 报错&lt;/span&gt;
   &lt;span class="k"&gt;end&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;condition_C&lt;/span&gt;
     &lt;span class="c1"&gt;# 跳到 render 400 并返回一个 C 报错&lt;/span&gt;
   &lt;span class="k"&gt;end&lt;/span&gt;

   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;all_ok&lt;/span&gt;
     &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;:status&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:json&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;:success&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="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:msg&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"All ok."&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="k"&gt;else&lt;/span&gt;
     &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;:status&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:json&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;:success&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="ss"&gt;:msg&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"condition B fail."&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;</description>
      <author>Insub</author>
      <pubDate>Tue, 29 Dec 2020 21:52:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/40762</link>
      <guid>https://ruby-china.org/topics/40762</guid>
    </item>
    <item>
      <title>如何解决复制拥有多层多个关联对象时的性能问题？</title>
      <description>&lt;p&gt;场景如下：&lt;br&gt;
Plan 表，2 万条数据&lt;br&gt;
Oneday 表，20 万条数据&lt;br&gt;
Event 表，100 万条数据&lt;br&gt;
典型情况是一个 Plan 有 10 个 Oneday，每个 Oneday 又有 10 个 Event  &lt;/p&gt;

&lt;p&gt;现在有允许复制某个 Plan 的需求，这些子对象都需要复制并且关联起来。&lt;br&gt;
尝试用了 includes 去 find 源 plan 对象，并且将创建相关 onedays 和 events 的操作都放在了 ActiveRecord::Base.transaction 里面了，可是复制一次还是要差不多 10000 ms .... &lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Sun, 19 Jul 2020 02:11:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/40175</link>
      <guid>https://ruby-china.org/topics/40175</guid>
    </item>
    <item>
      <title>jbuilder 使用多层 partial! 需谨慎，渲染有可能很慢</title>
      <description>&lt;p&gt;今天测了一下，jbuilder 大约每一处 partial! 的渲染需要 100 ms 左右&lt;br&gt;
例如：1 个 Plan 下面有 10 个 Days，每个 Days 下面又有 10 个 Events&lt;br&gt;
渲染这个 Plan 花去了 20000 ms（20 秒）  &lt;/p&gt;

&lt;p&gt;这个是正常的吗？我现在不太敢使用 partial! 了，感觉每循环一次 partial! 就会耗损 100 ms，心疼&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Mon, 08 Jun 2020 17:05:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/39945</link>
      <guid>https://ruby-china.org/topics/39945</guid>
    </item>
    <item>
      <title>某个类里面如果写错代码，开发环境不报错，但是部署到生产环境就无法启动了，如何在开发环境上提前暴露呢？</title>
      <description>&lt;p&gt;比如有一个业务类 plan.rb，如果里面写错了代码，比如：&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;Plan&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
    &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:events&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;xxxxxx: :some&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这种情况下，开发环境中是可以正常启动 puma 的，如果不访问到 plan 的控制器，页面上也不会报错。
但是如果这时候部署到生产环境中，那么 puma / passgener 都会检查到这个类里某一行有代码错误，而导致 puma / passgener 无法启动。
但是从部署过程看，nginx 已经正常启动了，没有报错。如果不检查 passgener 的日志，根本就发现不了这个问题。&lt;/p&gt;

&lt;p&gt;请问有什么好的解决办法？怎么能让开发环境也暴露出这个错误呢？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Wed, 06 May 2020 00:42:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/39834</link>
      <guid>https://ruby-china.org/topics/39834</guid>
    </item>
    <item>
      <title>请问如何生成形如 “V2UJY1FlBzdTbVI9” 这样的字符串来作为主键？</title>
      <description>&lt;p&gt;如题，看到穷游的主键是这种形式的，请教下应如何生成形如“V2UJY1FlBzdTbVI9”这样的主键？
&lt;a href="https://place.qyer.com/poi/V2UJY1FlBzdTbVI9/" rel="nofollow" target="_blank"&gt;https://place.qyer.com/poi/V2UJY1FlBzdTbVI9/&lt;/a&gt;&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Thu, 16 Apr 2020 20:42:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/39752</link>
      <guid>https://ruby-china.org/topics/39752</guid>
    </item>
    <item>
      <title>如何更好地取出关联表中的字段属性值？</title>
      <description>&lt;p&gt;我有一个 Project 模型和一个 User 模型，多对多关系。他们通过 has_many :through 用 ProjectUser 关联表来管理，在 ProjectUser 这个关联模型里，有一个 role 属性。&lt;/p&gt;

&lt;p&gt;我的需求是：在查询 A 用户的所有 Projects 的时候，能同时获取到 A 用户对应某 Project 的 role 值。
目前我是这样查询的：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="vi"&gt;@projects&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:project_users&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;:project_users&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;:user_id&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;id&lt;/span&gt; &lt;span class="p"&gt;}&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="s1"&gt;'projects.updated_at &amp;gt; ?'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;someTime&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;deleted_at: &lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样取出来的 project 数据里就只会有一个当前用户的 project_user 记录，然后我就可以通过 project.project_users[0].role 去获取当前用户对于这个项目的权限了。而不需要再查找一遍 ProjectUser 表。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;projects&lt;/span&gt; &lt;span class="vi"&gt;@projects&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;project&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt; &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt; &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;role&lt;/span&gt; &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;project_users&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;role&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但总觉得这样的查询貌似有点怪，执行的 sql 也非常的长以及复杂。&lt;/p&gt;

&lt;p&gt;请教，是否有更好的办法来实现这个需求？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Tue, 18 Dec 2018 12:29:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/37910</link>
      <guid>https://ruby-china.org/topics/37910</guid>
    </item>
    <item>
      <title>消息队列的推送，一般如何保证安全呢？</title>
      <description>&lt;p&gt;假如在阿里云上有个消息队列，是通过 http endpoint 推送到服务器上的 Rails 程序里的，这种情况下，如果这个接口地址暴露了，那等于可以对 Rails 伪造消息了，感觉不是很安全。&lt;/p&gt;

&lt;p&gt;这种情况下，一般如何处理呢？&lt;/p&gt;

&lt;p&gt;或者说，是不是不应该用 http 推送的方式？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Mon, 07 May 2018 14:56:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/36711</link>
      <guid>https://ruby-china.org/topics/36711</guid>
    </item>
    <item>
      <title>客户端迭代，后端 API 应如何做兼容？</title>
      <description>&lt;p&gt;客户端迭代的时候，全网发布到位是有一个时间的，而此时后端接口相应的迭代与上一个版本又有比较大的差异，请问这时候应该如何处理才能让客户端所有用户平滑过渡？&lt;/p&gt;

&lt;p&gt;技术成本比较低，比较简便的方案又是什么呢？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Sat, 03 Feb 2018 22:36:25 +0800</pubDate>
      <link>https://ruby-china.org/topics/34990</link>
      <guid>https://ruby-china.org/topics/34990</guid>
    </item>
    <item>
      <title>类似给赞或者抽奖助手那样的小程序或公众号，那个分享图是如何生成的？</title>
      <description>&lt;p&gt;就是那个能下载到相册然后分享到朋友圈的图片，有二维码，有用户自定义的文字和头像，大概是怎么实现的？
是后台生成再下载呢，还是前端去生成呢？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Mon, 25 Dec 2017 23:03:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/34773</link>
      <guid>https://ruby-china.org/topics/34773</guid>
    </item>
    <item>
      <title>发表主题的时候，在 windows 机器上不能非段落换行</title>
      <description>&lt;p&gt;如果我不留空白行直接换行的话，显示出来是没有换行的&lt;/p&gt;

&lt;p&gt;第一行
第二行&lt;/p&gt;

&lt;p&gt;留了空白行可以，貌似是因为处理成段落了&lt;/p&gt;

&lt;p&gt;第一行&lt;/p&gt;

&lt;p&gt;第二行&lt;/p&gt;

&lt;p&gt;环境是 windows7 / chrome&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Wed, 20 Sep 2017 14:57:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/34201</link>
      <guid>https://ruby-china.org/topics/34201</guid>
    </item>
    <item>
      <title>“发现” 功能如何实现比较高效？</title>
      <description>&lt;p&gt;场景大致如下：&lt;/p&gt;

&lt;p&gt;有一个发现栏目，用户点击进去，需要展示编辑勾选的数十个圈子（group）里最新的 100 条主题（topic）的集合，按主题的时间排序&lt;/p&gt;

&lt;p&gt;group 表大概有 1 万条数据&lt;/p&gt;

&lt;p&gt;topics 表大概有 100 万条数据&lt;/p&gt;

&lt;p&gt;group 和 topics 是一对多关系&lt;/p&gt;

&lt;p&gt;现在我的做法比较普通，每个用户点击/刷新页面的时候，查询圈子列表里“推荐”字段为 true 的圈子，得到圈子的 ids 集合，再用这个集合去 topics 表里面 where（:group_id =&amp;gt; [圈子 ids 数组]）这样来查询&lt;/p&gt;

&lt;p&gt;请教一下，有没有更好，相对还不那么复杂的办法去做这个事情呢？
每个用户刷新都走一遍这两个表的全表查询好像太....&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Wed, 20 Sep 2017 14:49:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/34200</link>
      <guid>https://ruby-china.org/topics/34200</guid>
    </item>
    <item>
      <title>为什么在 Homeland 中，很多时候选择使用 integer (0 / 1) 表示是否状态而不是 boolean？</title>
      <description>&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="nf"&gt;integer&lt;/span&gt;  &lt;span class="s2"&gt;"excellent"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   &lt;span class="ss"&gt;default: &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;有些不解，请教一下：
为什么不是直接使用 boolean 呢？是出于业务扩展的考虑还是性能上的考虑？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Wed, 20 Sep 2017 14:31:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/34199</link>
      <guid>https://ruby-china.org/topics/34199</guid>
    </item>
    <item>
      <title>如何将一个 URL 字符串去匹配一个数据库里的路由规则？</title>
      <description>&lt;p&gt;是这样的，我们准备提供一个服务，允许用户在我们的项目上搭建自己的 API 服务器&lt;/p&gt;

&lt;p&gt;用户会在项目 A 下创建一条允许访问的 API，格式：请求方法 GET，请求 URI /publishers/:p_id/magazines/:m_id/photos/:p_id
我们要把这个 API 作为一条记录存到数据库里&lt;/p&gt;

&lt;p&gt;然后，当我们需要用以下条件去查找某条 API，比如：
方法参数是 GET
URL 参数（字符串）是 /publishers/15/magazines/3/photos/2 &lt;/p&gt;

&lt;p&gt;我该如何存记录，如何查找记录，才能把这个 
" /publishers/15/magazines/3/photos/2 " 
匹配到数据库中的 
" /publishers/:p_id/magazines/:m_id/photos/:p_id "
这条记录？&lt;/p&gt;

&lt;p&gt;我尝试着去用 Rails 内置的 route 方法解析和查找记录，但是没有头绪无从下手&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Fri, 10 Feb 2017 17:07:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/32289</link>
      <guid>https://ruby-china.org/topics/32289</guid>
    </item>
    <item>
      <title>Rails 项目中需要根据 mockjs 规则生成 mock 数据并返回，应该如何做？</title>
      <description>&lt;p&gt;&lt;a href="http://mockjs.com/" rel="nofollow" target="_blank"&gt;http://mockjs.com/&lt;/a&gt; 是一个非常优秀的 mock 数据生成的 JS 库&lt;/p&gt;

&lt;p&gt;现在有一个需求大概类似于要用 Rails 搭建一个提供 mock 数据的网站：
客户端发送一个 mockjs 格式的规则到 Rails 服务端，Rails 端则将 mockjs 根据这个规则生成的 mock 数据返回给客户端&lt;/p&gt;

&lt;p&gt;可是应该怎么在 Rails 的控制器中调用 mockjs 来解析用户传过来的 mockjs 规则呢？
完全没有头绪，请教一下，比较简单/合理的方案是怎么样的呢？&lt;/p&gt;

&lt;p&gt;在 Rails 的控制器中有没有办法可以执行某个 JS 库的函数？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Sat, 04 Feb 2017 20:50:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/32233</link>
      <guid>https://ruby-china.org/topics/32233</guid>
    </item>
    <item>
      <title>访问 ruby-china 出了挺奇怪的问题</title>
      <description>&lt;p&gt;早上用访问 ruby-china 的时候，登录后无反应（右上角显示还是无登录状态），我以为是登录 BUG，然后我就用 GITHUB 登录
登录完之后，所有的 css 和 js 和 img 什么的都无法下载了，只有 html 能加载
Failed to load resource: net::ERR_INSECURE_RESPONSE
所有 upaiyun 的资源都这样，chrome 浏览器&lt;/p&gt;

&lt;p&gt;后来我看论坛里发的帖子好像其他人并不受影响，我就换了个 IE 浏览器登录，结果是正常的
问题我并没有开 SS 啊？&lt;/p&gt;

&lt;p&gt;我的位置在北京望京 SOHO，[114.243.213.***] 北京市北京市 联通&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Wed, 18 Jan 2017 18:01:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/32167</link>
      <guid>https://ruby-china.org/topics/32167</guid>
    </item>
    <item>
      <title>如何实现一个层级有限的，支持精确插入 / 修改的树形目录？</title>
      <description>&lt;p&gt;先说下需求&lt;/p&gt;

&lt;p&gt;四个模型：Project / Folder / Article / Report&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;需要实现类似这样的一个 MENU：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Project_id1&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Folder_id1

&lt;ul&gt;
&lt;li&gt;---- Article_id3&lt;/li&gt;
&lt;li&gt;---- Report_id1&lt;/li&gt;
&lt;li&gt;---- Article_id1&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Folder_id3 

&lt;ul&gt;
&lt;li&gt;---- Report_id3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Report_id2&lt;/li&gt;
&lt;li&gt;Article_id4&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;说明：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Folder / Article / Report 肯定属于某一个 Project，层级简单，最多只有三层，Project -&amp;gt; Folder -&amp;gt; Article / Report &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;然后需要：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;可以移动某一个 node 插入到 tree 中特定的一个位置，比如将 Report_id3 插入到 Article_id3 和 Report_id1 之间....&lt;/li&gt;
&lt;li&gt;移动某个 Folder 的时候，子级的 Article / Report 全部跟随移动&lt;/li&gt;
&lt;li&gt;某一个 Project 下只会有 100 个子级左右，但 Project 数是无限的，所以性能上需要能够支持大概百万级的数据&lt;/li&gt;
&lt;li&gt;最好是 2 到 3 次 SQL 就可以查询/插入/修改 节点.......&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rails 项目，SQL 数据库，看了几个相关的 GEM，貌似都不能覆盖需求：
awesome_nested_set / ancestry / closure_tree / acts_as_list / acts_as_tree&lt;/p&gt;

&lt;p&gt;想请教一下，比较合理的实现应该是怎么样？有什么 GEM 可用么？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Wed, 18 Jan 2017 00:39:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/32156</link>
      <guid>https://ruby-china.org/topics/32156</guid>
    </item>
    <item>
      <title>是否可以用 AWS 或者阿里云的消息队列来控制并发？还是应该用 Sidekiq？</title>
      <description>&lt;p&gt;场景是这样的，有一个专用的图片处理服务器，用来发请求，下载图片，然后处理图片，处理完后回调业务服务器。业务服务器则负责向图片服务器发处理图片的任务和接收回调。
但是如果不做任务并发控制的话，图片处理服务器可能会不断接到大量处理图片的任务，担心会有负载的问题，不知道这个担心对不对？&lt;/p&gt;

&lt;p&gt;所以后来的想法是把任务都加进 Sidekiq 里，然后用 Sidekiq 的频率设置来限定图片服务器同时处理的任务数。但搭建和维护 Sidekiq 又嫌麻烦，所以现在的想法是想用 AWS 或者阿里云的队列消息一类的云服务来做任务控制，但看了他们的文档好像都没有频率限制这么一说，不知道大家有用类似消息队列来做任务并发控制的么？&lt;/p&gt;

&lt;p&gt;而且每一张图片在处理完后，又会有别的后续任务，也在图片服务器上处理，如果设置了优先级，那么会不会导致高优先级的任务一直在跑，低优先级的任务就一直没有机会被处理？&lt;/p&gt;

&lt;p&gt;菜鸟，之前没有这样的经验，请教，像这种情况，通常应该用何种方案去控制图片服务器的并发任务数？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Tue, 12 Apr 2016 19:01:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/29685</link>
      <guid>https://ruby-china.org/topics/29685</guid>
    </item>
    <item>
      <title>淘宝的源貌似出问题了</title>
      <description>&lt;p&gt;ubuntu 环境，阿里云的服务器，用 mina 部署的时候 bundle install 会报错：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fetching gem metadata from http://ruby.taobao.org/.Retrying dependency api due t
o error (2/3): Bundler::HTTPError Network error while fetching http://ruby.taoba
o.org/api/v1/dependencies?gems=rake,i18n,multi_json,activesupport,builder,active...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本地开发环境的 taobao gem 就没问题
有点奇怪&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Thu, 07 Aug 2014 00:26:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/20881</link>
      <guid>https://ruby-china.org/topics/20881</guid>
    </item>
    <item>
      <title>迫于无奈，请教一下在 windows 开发环境使用 mina 部署的问题</title>
      <description>&lt;p&gt;如题，弄了两天了还是没法解决，只好发个帖子来求助一下。&lt;/p&gt;

&lt;p&gt;主要开发环境是 win7，服务器是 ubuntu
在 mina setup 的时候报错：
bash: -c: line 4: unexpected EOF while looking for matching `"'
bash: -c: line 5: syntax error: unexpected end of file
应该就是万恶的 LF 和 CRLF 的问题，但是，github 上开发者说自己没有 windows 环境不方便调试....然后我尝试着改了一下 GEM 包里面的代码，不得其法，还是不行&lt;/p&gt;

&lt;p&gt;不知道有没有在 windows 环境下执行 mina setup 的同学？是怎么解决这个问题的呢？&lt;/p&gt;

&lt;p&gt;自己其实有 macbook pro，但工作关系不常带在身边，所以感觉经常部署的话还是不方便，不知道是否可以在 mac 上每次运行 mina 自动生成一个 deploy.sh，然后 windows 上如果 config/deploy.rb 没有修改的话，每次就 ssh -t &amp;lt; deploy.sh 这样上去部署不知道是否可行？&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Fri, 11 Jul 2014 21:43:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/20448</link>
      <guid>https://ruby-china.org/topics/20448</guid>
    </item>
    <item>
      <title>如何找出自己 “关注”/“喜欢” 过的帖子呢？</title>
      <description>&lt;p&gt;如何找出自己“关注”/“喜欢”过的帖子呢？
那个收藏的标签太不起眼了，而且没有收藏这个字，所以一直在把“关注”当做收藏来用
现在发现找不到那些关注的帖子了。。。&lt;/p&gt;</description>
      <author>Insub</author>
      <pubDate>Tue, 29 Jan 2013 18:07:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/8464</link>
      <guid>https://ruby-china.org/topics/8464</guid>
    </item>
  </channel>
</rss>
