新手问题 学 Ruby on Rails 过程中遇见的一些 “奇怪” 问题???

qq2729877005 · 2017年07月08日 · 最后由 qq2729877005 回复于 2017年07月09日 · 1579 次阅读

俗话说得好,有图有真相!

如图,一个是在 rails 控制台中,一个是在 ruby 中,分别在这两者中定义一个同样的 hash 方法,

为什么 rails 控制台里打印两次结果,而 ruby 却只打印了一次呢???

此问题是在看《railstutorial4th-0.1.2》书籍中,以下内容引出:

before_action 和 before_filter 至今没搞明白什么区别 哪个版本用哪个

Rails 里的方法调用,会调用 inspect 方法,它会返回它的值 (如果我没记错的话)😂

4 楼 已删除
zahi 回复

Rails > 4.0.0 是使用 before_action。Rails 5.1,before_filter 被删除了。

zahi 回复

还好,目前只遇见过 before_action,没碰过 before_filter,不用为此费心😌

yunshang 回复

不太理解这句话,inspect 方法不是显示字面值的吗?为什么调用了它就会出现两次结果?这两者之间有什么联系吗?

第一个 hash 多重输出的问题在一个新的 5.1.2 项目上复现不出来

另外不要覆盖 hash 函数,那个函数存在的

在 console 里面也只打印了一次吧。两个abc + 1 第一个是打印的,第二个是返回值。

在 irb 里面也是一样的,打印一次,返回一次。 只是你这个地方覆写了 hash 函数,报错了,所以没看到返回值吧。

qq2729877005 回复

我理解错你的问题了

ringokun 回复

谢谢,按照你所说的,把函数名改了一下,发现确实如此,感谢大侠🎉

jasl 回复

解决了,正如你和 8 楼说的一样,谢谢前辈解疑🎉

yunshang 回复

有回复就不会沉,不会沉就有希望解决,谢谢你能热心解惑🎉

qq2729877005 关闭了讨论。 07月22日 14:03
需要 登录 后方可回复, 如果你还没有账号请 注册新账号