问题标签 [ruby-2.3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
323 浏览

ruby - 当字符串默认不可变时,如何描述可变字符串?

当文件具有编译指示时:

默认情况下,该文件中以文字形式写入的所有字符串都被冻结。当我希望我的字符串总体上是不可变的,因此正在使用编译指示,但想要有几个可变字符串时,推荐的编写方式是什么?

我能想到的只有:

0 投票
2 回答
8775 浏览

ruby - nil 的安全导航运算符 (&.)

由于 Ruby 2.3 引入了安全导航操作符(&.),也就是孤独操作符,nil对象上的行为看起来很奇怪。

这是设计成这样吗?还是在添加孤独运算符时滑落的一些边缘情况?

0 投票
2 回答
543 浏览

ruby - 什么是 Ruby2.3 之前的等价于安全导航运算符(&. 或“& 点”)?

我能找到的关于 Ruby 的新安全导航运算符 ( ) 的每个问题的答案(Q1Q2&. )都错误地声明它obj&.foo等同于obj && obj.foo.

很容易证明这种等价是不正确的:

此外,存在多重评估的问题。用具有副作用的表达式替换obj表明副作用仅在&&表达式中加倍:

obj&.foo避免这些问题的最简洁的 pre-2.3 等价物是什么?

0 投票
2 回答
122 浏览

ruby - 安全导航运算符 (&.) 的语法糖

安全导航运算符(&.)如何用于[]方法的语法糖?

0 投票
1 回答
628 浏览

ruby - 使用 Hash#dig 提取哈希值

给定一个像上面这样的哈希,说我想得到用户John,我可以做

在 Ruby 2.3 中使用Hash#dig可以做同样的事情:

但是鉴于这u_548912只是一个随机数(无法事先知道),有没有办法获取仍在使用的信息Hash#dig

0 投票
1 回答
354 浏览

ruby-on-rails - 升级到 Ruby 2.3.0 后迁移数据库失败

我已更新到 Ruby 2.3.0,但在创建新的 Rails 应用程序时遇到了一些问题。创建一个简单的新测试应用程序并搭建资源后,尝试执行时rake db:migrate出现以下加载错误:

任何帮助排序都会很棒!

0 投票
6 回答
6458 浏览

ruby - 使用 Hash#dig 或 Lonely operator(&.) 为嵌套哈希安全地赋值

要将值分配给嵌套哈希,我们可以使用

但是,如果缺少中间的任何部分,则会导致错误。

就像是

不会工作,因为还没有Hash#dig=可用的。

为了安全地赋值,我们可以做

但是有更好的方法吗?

0 投票
5 回答
173 浏览

ruby - 当前的 Ruby 方法是通过 super 调用的吗?

在运行时的方法中,有没有办法知道该方法是否已super在子类中调用?例如

我怎么能写via_super?,或者,如果有必要,via_super?(:bar)

0 投票
1 回答
1375 浏览

ruby - How to start Rack application with frozen string literals?

I'm trying to run our application under ruby 2.3 using the new ruby feature for automatic frozen strings turned on globally. (Ruby 2.3) This is normally done by passing the argument to a ruby script when starting as follows:

Unfortunately, our application is started using rackup, and I've tried the following command:

But this does not appear to work. How do I pass that parameter into Rack?

0 投票
1 回答
4646 浏览

ruby-on-rails-4 - 如何在 Rails 中全局启用 Ruby 2.3 `--enable-frozen-string-literal`?

我正在 Ruby 2.3 之上构建一个全新的 Rails 应用程序,我希望所有 Rails 命令(例如rails srails c)和所有 Ruby 命令(例如rake do:something)使用 Ruby 2.3 中引入的新的不可变字符串功能。(参见,例如https://wyeworks.com/blog/2015/12/1/immutable-strings-in-ruby-2-dot-3/

--enable-frozen-string-literal那么,在我发出的某些命令在 Ruby 中触底的所有可能上下文中,我如何将那个可爱的 Ruby 选项传递给 Ruby?

提前致谢!