新年快乐(又一次)!还有一个13号星期五 👻
我是Vipul,为您带来今年第二周的最新消息,这一周看起来会非常忙碌。
感谢所有27位贡献者,特别是首次贡献的4位朋友。继续保持良好工作!
以下是本周Rails master上最相关的改动。
由于Ruby 2.5中已移除顶层常量查找,Rails已在其端处理了相关改动,以便我们依赖于正确作用域的常量,而不是依赖于回退查找。
如果一个进程被forked多次,Active Record连接池会获取该进程最旧的连接规范,而不是最新的一个。
单个进程不会出现此问题,但如果您多次fork进程,将会返回错误的规范并使用不正确的连接。
此改动通过反转规范名称列表来解决此问题,以便我们能获取最新的规范而不是最旧的。
之前在使用时间旅行方法(如travel_to等)时,对例如Time的子类调用now,会返回一个Time实例,而不是子类的实例。
此改动修复了我们返回实例的方式,确保我们始终使用正确的类返回。
之前,以下代码可能会根据当前时间成功或失败。
ActiveSupport::Duration.parse(2.months.iso8601) == 2.months
ActiveSupport::Duration.parse(3.years.iso8601) == 3.years
此改动修复了不一致的解析,使此比较不再失败。
reflection的class_name选项的目的是通过传递字符串来允许我们延迟加载类。
直接使用类,例如
belongs_to :client, class_name: Customer
会不必要地急切加载模型,并可能产生循环依赖。
此选项现已弃用,请改为传递类名的字符串。
以上是Vipul的报道。希望您喜欢本期内容。
如果您还没有开始,请着手准备RailsConf的提案,您只剩下6天时间来提交一个好的演讲!