• 也曾遇到这个问题,用了阿里的负载均衡,然后rails这边用devise做的用户登陆,结果users表里的current(last)_sign_in_ip全是负载均衡的服务器的IP。

    阿里的文档当时是让我们从headers的HTTP_REMOTEIP里去拿,于是就很简单的覆盖了devise提供的update_tracked_fields方法。

    我感觉能有个中间件来做这个应该是比较理想的,不过后来也没再研究。

  • Ruby 2.5.0 已发布 at 2018年01月02日

    yield_self 帮了大忙,看到这个还蛮兴奋的

  • 感觉又错过了几十个亿…当时没领,现在去看,领取的网址已经失效了

  • 额…之前差点进驻你们的众创空间,环境不错,没想到你们也用ROR

  • 感觉好像日和吐槽啊2333 楼主是学过日语吗?

  • 目前用了一个月GraphQL了,感觉是方便了前端吧…后端感觉还是效率不是太好,特别是当前端为了能一条查询得到所有数据,嵌套了太多层之后,岂止是N+1,简直要 (N+1)^2。为了把这些N+1消灭掉,着实要花一些功夫。 总而言之还是对前端方便了许多,后端则变得麻烦了,此消彼长的感觉。

  • Good chance!

  • 说到波士顿…我努力了一年,仍然只能在70岁以上女子组标准里

  • 我看到了中文命名的方法 😏

  • 感觉很好用啊,多谢啦~

    有个问题,就比如RubyChina的Topic#show页面这样的场景:当前用户赞了很多个Reply,在显示的时候已经赞过的Reply要标记成红色,这个数据有什么方便的方法能includes进来?感觉一条条reply去判断 current_user.like_reply?(reply) 会有很多条查询,但是includes进来所有like 的数据有又觉得没必要。

    唔,看了下RubyChina的源码,大概了解了

    Controller:

    @user_like_reply_ids = current_user&.like_reply_ids_by_replies(@replies) || []
    

    Model:

    def like_reply_ids_by_replies(replies)
      return [] if replies.blank?
      return [] if self.like_reply_ids.blank?
      # Intersection between reply ids and user like_reply_ids
      self.like_reply_actions.where(target_id: replies.collect(&:id)).pluck(:target_id)
    end
    

    可以解决问题,但感觉有一点不好的是,我现在要做页面同时有“顶”和“踩”…这个步骤我得重复一遍 😂