Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
saiga
@saiga
Member
NO. 4375 / 2012-11-05

[email protected]
深圳
19 Topics / 701 Replies
14 Followers
1 Following
63 Favorites
请认准唯一指定邮箱:aiasfina#hotmail.com
GitHub Public Repos
More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 如何将一个 URL 字符串去匹配一个数据库里的路由规则? at February 10, 2017

    我个人想到用 trie 树的概念去实现。。 举个栗子,数据库记录如下:

    id route
    1 /publishers/:p_id/magazines/:m_id/photos/:p_id
    2 /publishers/:p_id/magazines/:m_id

    然后构建一棵树,按照分隔符划分为词,变量转为*表示通配,is_end == true 代表有记录,id 存储数据库 id,refer_count 引用计数

               root
            /
    publishers (refer_count=2)
         |
         * (refer_count=2)
         |
    magazines
         |
         *  (is_end=true, id=2, refer_count=2)
         |
    photos (refer_count=1)
         |
         *  (is_end=true, id=1,refer_count=1)
    

    我用 ruby 实现了基本逻辑测试了一下。随机 100 万 url,查是很快,但是构建非常慢而且很吃内存,占了大概 2 个 G 的内存。要写出用在生产环境的代码有点难,所以嘛....

    看看楼下有没有解决方案.... 😅

  • Rails 项目中需要根据 mockjs 规则生成 mock 数据并返回,应该如何做? at February 05, 2017

    ruby 是可以用 execjs 运行 js,但是为啥不用 node 呢.....

  • 如何实现一个层级有限的,支持精确插入 / 修改的树形目录? at January 18, 2017

    #17 楼 @Insub 你可以参考一下这篇 文章,不过我不建议你在这个 gem 上面浪费时间了。。

  • 如何实现一个层级有限的,支持精确插入 / 修改的树形目录? at January 18, 2017

    无论 projectX 是否有关系,在 awesome_nested_set 眼里就是一颗二叉树,只要增加一个节点都会触发两段 sql:

    update tree set lft=lft+2 where lft>n
    update tree set rgt=rgt+2 where rgt>n
    

    所以,即使你在 project1 里面加一个 article,后面无限多个 projectX,folderX... 都需要 update,这个 gem 只适用于极少改动的小规模数据表,数据一多就 GG 了

  • 这种代码有什么好的重构方法吗? at January 12, 2017

    其实你有好些参数是只用一遍的,可以进行预处理不让逻辑进入循环内,比如 node, node_name 这些

    另外,循环内不要查询,你这里查询数=nodes.size*interfaces.size*2,太多了,如果可以直接用 in 那不妨用一下。下面代码仅供参考..

    def _assign_network_from_db
      @nodes
        .lazy
        .map do |node_name, node|
          next if node["topology_resource_id"].nil? 
          [node["topology_resource_id"], @interfaces[node_name]]
        end
        .reject(&:nil?)
        .each do |id, interface|
          ifaces = TopologyResourceInterface.where(topology_resource_id: id, name: interface.map(&:first))
          # ....
        end
    end
    
    def deal_with_interface_name
      #...
    end
    
    def deal_with_iface_parent_name
      #...
    end
    
  • jbuilder vs active_model_serializers at January 10, 2017

    #20 楼 @huacnlee 是的,所以我加上只考虑单纯输出 json,因为和 jb 的写法太像了😂

  • jbuilder vs active_model_serializers at January 10, 2017

    #7 楼 @numbcoder 如果只是单纯输出 json,不依赖 gem 直接用 rails 的 json.ruby 模板就行了。。

    # views/**/*.json.ruby
    obj = {
      title: @post.title
    }
    if user.admin?
      obj[:admin] = true
    end
    obj.to_json
    
    # *_controller.rb
    render json: render_to_string('**/*.json.ruby'), content_type: 'application/json'
    
  • Dave:重新思考编程 at December 05, 2016

    其实这两种东西就是表达式(数据转换)和逆表达式(模式匹配)。前者是 fp 的基石,后者则是前者的解释,或者说是解构过程。

    虽然说是这么说,但是对于新手而言后者明显要比前者难理解,特别是后者经常会跟递归一起出现...

  • 转帖:Kill Your Dependencies at April 06, 2016

    也有可能重复造轮子。

  • 有什么轻量级的并发框架推荐吗? at March 30, 2016

    Ruby 并行是半吊子,并发可不是。 基于 io 多路复用的 em,或者基于协程的 celluloid 都可以解决你的需求。如果只是简单的采集,用 typhoeus 就够了。

  • 让你没有机械键盘也能感受到机械键盘 at January 29, 2016

    换个音效,配上这个插件https://atom.io/packages/activate-power-mode

  • 正则替换求助 at January 08, 2016

    试一个

    str.gsub(/(?<=^\$)(\p{Word}+)(?:\s*,\s*|\s+)(\p{Word}+)(?=\s*\=)/, '\1_\2')
    
  • 弱弱问个问题: 如果将一个字符串作为变量? at December 24, 2015

    #4 楼 @qinfanpeng

    要暴露 scope 其实也可以用 binding 的:

    a_var = 'aaa'
    b = eval("#{a_var}='bbb';binding")
    eval(a_var, b)
    
  • 准备用 Rails 重头写一个支持多站点的 CMS 系统 at October 26, 2015

    多站点的话这俩,不过并不是多租户的. https://github.com/locomotivecms/engine https://github.com/comfy/comfortable-mexican-sofa

  • 如何修改 Rails 默认的 created_at 和 updated_at at October 14, 2015

    试试

    class A < ActiveRecord::Base
      def timestamp_attributes_for_update
        [:update_time]
      end
    
      def timestamp_attributes_for_create
        [:insert_time]
      end
    
      def current_time_from_proper_timezone
        Time.now.to_i
      end
    end
    
  • 欢迎 3 位新的 Ruby China 社区管理员 at October 13, 2015

    :thumbsup:

  • docker 中,怎么把 assets:precompile 的结果,扔进 cdn 或云存储 at September 30, 2015

    不用上传,改一下 asset_host 就可以了,七牛自己会抓。

  • JRuby 线程安全 问题 at September 08, 2015

    lazy initialization 主要问题是在进行初始化操作还没完成时,第二个线程插进来可能会返回一个空指针了,然后就挂了。 wiki 里面有介绍 java 使用双重检查锁定模式解决方法,另外这里也有介绍 jruby 的 lazy initialization 问题,不过并没有提到解决方法。

  • 骑士今天赢了! at June 08, 2015

    老詹这两场叼炸天了

  • 请教下写快速后台的经验 at June 08, 2015

    后台列表可以试试这个 Gem,可以快速生成 search,filter, sort 等功能:https://github.com/bogdan/datagrid

  • Ruby VS Scala at May 06, 2015

    #23 楼 @kabie 2.10 之后已经可以 eval 了,而且有了 macro,在编译期就可以随便玩弄了。代价就是这门语言越来越可怕了...

    import scala.tools.reflect.ToolBox
    val tb = scala.reflect.runtime.currentMirror.mkToolBox()
    tb.eval(tb.parse("println(1)"))
    
  • 真是用了 Ruby 就没法再用其他语言了 at May 05, 2015

    scala,事实上现在很多语言都有借鉴 ruby 的

    product.option_types.map(_.presentation).exists(_.contains("颜色"))
    
  • 那些不常更改的内容,你们怎么设置的? at April 27, 2015

    挂个 CMS 进去..

  • 我喜欢酱紫的 Hash at March 11, 2015
    options = {}
    options[:url] = "好看"
    options[:host] = "我喜欢"
    options[:customer] = {}
    options[:customer][:name] = "爱死了"
    options[:customer][:number] = "越看越喜欢"
    options[:customer][:bills] = []
    options[:customer][:bills] << {number: "白", memo: "漂亮"}
    options[:customer][:bil1s] << {number: "富", memo: "漂亮"}
    options[:customer][:bills] << {number: "美", memo: "漂亮"}
    

    大家一起来找错 😄

  • 学着写了一个在本站模拟 block 用户的 userscript 脚本,但是用起来有点问题。 at March 08, 2015

    用 page:change 事件就可以了,另外有两个地方可以改进:

    1. 用正则,速度快一点,而且支持多用户过滤
    2. 用 id 检查当前是哪个页面
    $(document).on('page:change', function() {
      var isReply = $('#replies').length;
      $(".info").each(function() {
        if (/用户名/.test(this.innerHTML)) {
          $(this).parents(isReply ? ".reply" : ".topic").hide();
        }
      });
    });
    
  • Egison: 非线性模式匹配的 Lisp 方言 at February 05, 2015

    #2 楼 @luikore 原来是吐槽 join 啊...

  • [ 已解决 ] 点击链接跳转到页面某部分,这种跳转有没有 transition 的写法? at January 29, 2015

    google tips: smooth scroll anchor

  • Array 迭代给 Hash 赋值的问题 at January 12, 2015
    [1,2,3,4].each_with_index.map { |n, i| {number: n, index: i} }
    
  • [惠州] 汇星印刷有限公司现招 Ruby on Rails 及.Net 程序员 at December 26, 2014

    家乡企业 😄 简历已发

  • Prev
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 22
  • 23
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English