• Sidekiq 任务调度流程分析 at 2017年12月04日

    感动~昨晚直接给自己加了餐,哈哈

  • mina 1.0 之后有个 bug,作者修改了底层代码,导致一些依赖的初始化没有执行,比如 rvm。解决方案如 @zhandao 所示,但是早一点的版本应该是 task deploy: :environment:remote_environment 应该是最新版本的命名。

    感觉mina 就是跑起来快一点,但是特性少,不好扩展,另外也都一直有小毛病。

  • 寻找 ruby 工程师 at 2017年11月10日

    你这排版……请先学学如何用 markdown 排版吧

    另外看下招聘版规

  • @bighuzi 不好意思,上一条评论没有看你的 Gemfile,你确实已经是安装最新发布版本的 rails_kindeditor 了,但是我发现那个版本并没有包含这个问题的修复,修复代码还在 master 分支,所以如果你一定要使用,可以尝试修改 Gemfile

    gem 'rails_kindeditor', '~> 0.5.0', github: "Macrow/rails_kindeditor"
    
  • @bighuzi 首先,*_filter 这类callback 从 4.2 开始废弃,你用的是 5.1,肯定早就没有这方法了,然后你遇到的错误,说明你用的 gem 依赖了旧版本的 rails 的代码。一般解决这类问题,有两个思路:

    1. 升级你用的 gem,以确保它的版本跟 Rails 5.1 兼容,这一般是优先考虑的方式;
    2. 自己加上补丁,把 gem 里边依赖的方法加上,解决 undefined method error,这种方式是下策,迫不得已才用。

    所以,针对你说的

    我已经执行过gem update。已经更新过了的。。但是还是会存在这个问题

    这个是思路 1,但是思路对不代表方案对。首先:

    1. 你到底是执行的 bundle update 还是 gem update?请先明白,只有 bundle update rails_kindeditor 才能更新你项目里用的 rails_kindeditor 的版本,而 gem update 更新的是系统里已经安装的 rails_kindeditor 的版本,这两个事情并不等价,如果不能理解,建议你先学习下 bundler 的相关知识。如果你用的 gem install,那请先尝试 bundle update 之后看看行不行;
    2. 即使你确保已经为项目更新到了最新版本的 rails_kindeditor,仍然可能会有问题。因为可能你用的 rails_kindeditor 压根就不支持,你再怎么升级也没有用;
    3. 我这里说的都挺废话的,因为官方repo本来就有这个问题的讨论,你应该去那讨论,楼主多学会利用搜索。
  • HTTParty 如何提交 JSON Array? at 2017年11月02日

    歪个楼聊下, 我试了一下,如果没有指定顶层参数这种请求,如果是 rails,那么请求自动解析后将 body 的数据放在 "_json" 参数里,我的演示:

    curl -d "[{\"a\":1},{\"a\":2}]" -H "Content-Type:application/json" localhost:3000/admin/admin_users
    

    Rails 服务器打印的日志:

    Started POST "/admin/admin_users" for 127.0.0.1 at 2017-11-02 00:54:23 +0800
      ActiveRecord::SchemaMigration Load (15.8ms)  SELECT `schema_migrations`.* FROM `schema_migrations`
    Processing by Admin::AdminUsersController#create as */*
      Parameters: {"_json"=>[{"a"=>1}, {"a"=>2}], "admin_user"=>{}}
    

    另外我翻了下 rails 源码,找到了 json 解析时候的这个默认行为:

    # https://github.com/rails/rails/blob/8c7aa4c7bcb4ae42db8c573ba64a5eabdf54ecd1/actionpack/lib/action_dispatch/http/parameters.rb#L11-L13
    DEFAULT_PARSERS = {
        Mime[:json].symbol => -> (raw_post) {
          data = ActiveSupport::JSON.decode(raw_post)
          data.is_a?(Hash) ? data : { _json: data }
        }
      }
    
  • HTTParty 如何提交 JSON Array? at 2017年11月02日
    data = [
      {"name":"test1","display_name":"test1","numeric":0},
      {"name":"test2","display_name":"test2","numeric":0},
      {"name":"test3","display_name":"test3","numeric":0}
    ]
    
    Foo.post('http://foo.com/resources', body: data.to_json, headers: { 'Content-Type' => "application/json" })
    

    这样如何?

  • 票价感人

  • 简史,摘自官方自我介绍 http://www.infoq.com/cn/about-us

    初创
    2007年InfoQ中国创始人霍泰稳和Floyd共同将InfoQ引入中国,2007年3月28日,InfoQ中文站InfoQ.com.cn正式上线。
    今天
    InfoQ中国主办的QCon全球软件开发大会ArchSummit全球架构师峰会覆盖京沪深三地,辐射主要IT重镇,以每年四场次、每场过千人的规模,通过线下的形式与线上网站形成互补,影响着一代又一代中国技术人
    2014年,InfoQ中国并入极客邦科技。

    只参加过一次 ArchSummit,不作评价。

  • @tenderlove: Time to learn Elixir! at 2017年10月19日

    上次见面你说你写的是 clojure