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

qq2729877005 · 发布于 2017年07月08日 · 最后由 qq2729877005 回复于 2017年07月09日 · 644 次阅读
6aa3cf

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

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

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

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

共收到 11 条回复
21190

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

E8ebf1

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

3楼 已删除
E8ebf1
21190zahi 回复

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

6aa3cf
21190zahi 回复

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

6aa3cf
E8ebf1yunshang 回复

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

1107

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

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

29283

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

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

E8ebf1
6aa3cfqq2729877005 回复

我理解错你的问题了

6aa3cf
29283ringokun 回复

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

6aa3cf
1107jasl 回复

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

6aa3cf
E8ebf1yunshang 回复

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

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