• !! 注意 delete_all 的坑 at 2017年07月07日

    前一段时间正好遇到了这个问题,当时没深入研究,原来是这样的。👍

  • production 环境的 assets:precompile 会压缩 JavaScript 代码,压缩代码用的 Uglify 需要解析代码,Uglify 目前还不支持 ES2015 语法,所以就出错了。 本地运行正常是因为 development 环境的 assets:precompile 不会压缩代码。相关的配置是下面这一行代码。

    # Compress JavaScripts and CSS.
    config.assets.js_compressor = :uglifier
    
  • 我把 node_modules 加入 linked_dirs,没遇到什么问题。

    LINKED_DIRS = %w(
      data
      log
      tmp/pids tmp/cache tmp/sockets
      vendor/assets/bower_components
      node_modules
    )
    set :linked_dirs, fetch(:linked_dirs, []).push(*LINKED_DIRS)
    
  • #21楼 @Neilpang 偶遇原作者。

  • Ruby 的爬虫世界 at 2016年12月04日

    https://github.com/httprb/http 用过这个写爬虫,遇到两个问题:

    • 貌似没有日志,RestClientFaraday 都有日志功能,可以把实际发送的请求写到日志中,可以检查请求的格式、参数是否正确。
    • 貌似不能自动处理压缩过的响应,比如这个地址 http://www.bilibili.com/index/index-icon.json 返回的就是 gzip 压缩过的响应。最后还是用 net/http 解决的。

    不知道有没有遇到类似问题的同学,欢迎分享解决方案。

  • #5楼 @piecehealth 还是这个最简单,终于找到了类似 Python python -m SimpleHTTPServer 的等价命令。不过那个 -run 总有一种黑魔法的感觉,-r un 简写成 -run 会让初学者迷惑吧。

  • gems.ruby-china.org 连不上 at 2016年04月03日

    #1楼 @lgn21st

    % ping gems.ruby-china.org                                                                           ➜
    PING 12f7b4-0.ca.1251971244.clb.myqcloud.com (45.113.69.41): 56 data bytes
    Request timeout for icmp_seq 0
    Request timeout for icmp_seq 1
    Request timeout for icmp_seq 2
    Request timeout for icmp_seq 3
    Request timeout for icmp_seq 4
    Request timeout for icmp_seq 5
    Request timeout for icmp_seq 6
    Request timeout for icmp_seq 7
    Request timeout for icmp_seq 8
    Request timeout for icmp_seq 9
    ^C
    --- 12f7b4-0.ca.1251971244.clb.myqcloud.com ping statistics ---
    11 packets transmitted, 0 packets received, 100.0% packet loss
    

    上海长城宽带,ping 都不通,但是 https://gems.ruby-china.org/ 可以勉强打开。这种情况应该是联系长城宽带还是联系腾讯云,哪种方案更容易解决问题?

  • helper 里面的那些方法本意是在 View 层使用的。可能 Rails 觉得这种情况下写法的便利性更优先,于是就把避免命名冲突的责任交个程序员自己了。

    • 既然你发现 gsub 会修改 $2,那么你在 gsub 之前用一个变量把 $2 保存下来不就好了。
    • 使用正则表达式时尽量不要用这种依赖全局变量的方式,用 String#matchRegex#match 会好得多。 ``` ruby DATA.each do |line | match_data = line.match /(\d+,\d+)\s+(.*)/ number = match_data[1].gsub(",", "") file = match_data[2]

    puts "#{file}\t#{number}" end

    - `9.chr` 这种写法还真没见过, `"\t"` 不好吗?`puts` 的输出结果每个参数都是单独一行,这样的格式是你真正想要的?
    - 这个问题貌似压根就不需要用正则表达式,用 `String#split` 不就好了。
    
  • 除了 ActiveRecord 的保留字,有时和 Ruby 的方法重名也会有问题。原来遇到过字段名是 format,结果貌似和 Kernel#format 方法冲突了。