• Ruby 回调机制解释 at 2019年10月15日

    原来原理如此,这个文章非常干货,回答了很多工作中遇到的问题👍

  • Ruby 回调机制解释 at 2019年10月15日

    对,就是日常写两个语言感觉不太一样,很想研究一下他们的线程模型

  • Ruby 回调机制解释 at 2019年10月15日

    👍 这个包好,看了一下源码,它用线程实现异步,这个对我帮助很大

  • 不用redirect_to ,直接调用another方法

  • 这个训练模型用了多长时间训练,训练成本需要多少

  • ruby 回调机制解释 at 2019年10月14日

    看来要看源码了,这个点越学越糊涂😂

  • Ruby 回调机制解释 at 2019年10月14日

    我现在好奇的是要使用回调避免阻塞,其前提应该是需要使用多线程,否则无论如何在单线程上一定会阻塞的,关于ruby的线程,其实也是越学越糊涂, 1.最早是看<松本行弘的编程世界>和matz自己提到过ruby最后悔的是线程的设计,因为他使得语言变得复杂,而且他说线程这个功能是后来匆忙加上去的,对于是否单线程,matz本人好像没有说,但是我猜测是单线程的.

    1. 我帮别人做过一个项目,在做amazon的云存储时,文档明确介绍的是如果使用js或者ruby这样的语言读取文件的时候,是会阻塞应用程序的. 3.另外还有文章说,ruby 的县城取决于操作系统和编译器 https://cloud.tencent.com/developer/ask/51206 如这篇文章所述. 所以各个说法都不一样,而目前又没有不太会读ruby的源码,所以一直都比较困惑,如你所述如果ruby不是单线程,那么可以怎么证明?
  • 终于在@rails/webpacker/packages/enviorments/production.js 找到了原因

    module.exports = class extends Base {
      constructor() {
        super()
    
        this.plugins.append(
          'Compression',
          new CompressionPlugin({
            filename: '[path].gz[query]',
            algorithm: 'gzip',
            cache: true,
            test: /\.(js|css|html|json|ico|svg|eot|otf|ttf|map)$/
          })
        )
    
        this.plugins.append(
          'OptimizeCSSAssets',
          new OptimizeCSSAssetsPlugin({
            parser: safePostCssParser,
            map: {
              inline: false,
              annotation: true
            }
          })
        )
    
        this.config.merge({
          devtool: 'source-map',
          stats: 'normal',
          bail: true,
          optimization: {
            minimizer: [
              new TerserPlugin({
                parallel: true,
                cache: true,
                sourceMap: true,
                terserOptions: {
                  parse: {
                    // Let terser parse ecma 8 code but always output
                    // ES5 compliant code for older browsers
                    ecma: 8
                  },
                  compress: {
                    ecma: 5,
                    warnings: false,
                    comparisons: false
                  },
                  mangle: {
                    safari10: true
                  },
                  output: {
                    ecma: 5,
                    comments: false,
                    ascii_only: true
                  }
                }
              })
            ]
          }
        })
      }
    }
    
    

    注释掉这个插件即可

    // this.plugins.append(
    //   'OptimizeCSSAssets',
    //   new OptimizeCSSAssetsPlugin({
    //     parser: safePostCssParser,
    //     map: {
    //       inline: false,
    //       annotation: true
    //     }
    //   })
    // )
    
  • 我发现是我理解错了,原来是rescue ActiveRecord::RecordInvalid 的时候,render的时候又抛出错误了,然后新的错误就在错误的数组上新增,这个是没问题的,是我对rescue的机制认识不够深入

  • 对的就是这个错误,但是后面rescue的时候,把activerecord的错误抛给我了,实际上应该是missing template的,但是我觉得既然我rescue 了activerecord::invalid,后面就不应该显示这个错误,只显示missingtemplate 就好了,这个不影响功能,但是可以优化