• asset 图片显示问题 at 2018年12月03日
  • 关于类变量的疑问 at 2018年12月02日

    给你补上例子

    class A
      def initialize
        @path=''
      end
      def path
        @path
      end
    end
    class B < A
      def initialize
        @path='b'
      end
    end
    class C < A
      def initialize
        @path='c'
      end
    end
    
    obj= B.new
    puts obj.path
    
  • 关于类变量的疑问 at 2018年12月02日

    像你这种情况是不想公用属性啊,那应该用实例变量而不是类变量。

    但要记得实例变量区分类和他的单例类两个作用域,因此要把初始化的操作移到构造函数中,像上面在类中初始化会得不到你期望的效果

  • 关于类变量的疑问 at 2018年12月01日

    首先这段代码最后的结果就是 c,最简单的,开一个 irb 把代码都粘贴上去验证一下就行了。你上面提到的 Nginx 结果没有什么问题,至于 rails s 结果错误,肯定是因为别的原因(我猜想你的 B, C 都是自动加载类,然后实际上验证结果时 C 没有加载或者 B 在 C 之后加载的)。

    至于结果为什么是 c,是因为 Ruby 的类变量会和所有子类以及他们的单例类共享的,即在上述的所有作用域中 @@path 的内存指向都是一样的。

    class A
      @@path=''
    
      def path_object_id
        @@path.object_id
      end
    
      def self.path_object_id
        @@path.object_id
      end
    
      puts path_object_id # => 70139278257540
      puts self.new.path_object_id # => 70139278257540
    end
    
    class B < A
      puts @@path.object_id # => 70139278257540
      puts self.new.path_object_id # => 70139278257540
    end
    
    class C < A
      puts @@path.object_id # => 70139278257540
    end
    
  • 可以用继承钩子解决你的问题,Class#inherited

  • 数组哈希累加 at 2018年11月15日
    records.each_with_object({}) do |record, hash|
      record.each do |k, v|
        hash[k] ||= 0.0
        hash[k] += v
      end
    end
    
  • Ruby China 7 岁生日快乐 at 2018年10月28日

    🎂 🎂 🎂

  • 你这个伪装骗过了服务器,但没有骗过浏览器,浏览器还是当成 AJAX 请求处理

  • 重定向是浏览器才有权利做的事情,服务端只能作出指示。

    如果是普通请求,浏览器收到服务端重定向(3xx状态码) 的指示后,会自动再向指示的地址发送一个请求,达到页面刷新。

    如果变成了 AJAX 请求,浏览器是不会响应重定向状态码指示的,这时候可以用 #3 上面说的方法,渲染一段 JS 代码给浏览器,浏览器收到后会执行实现页面刷新

  • 会很有帮助,收集一下大家的主要问题回答。但是最后还是要汇集展现出来,说到底社区还是需要原来的 Wiki 这样的教程,现在是内容无法及时更新的问题对吧。