Mag*_*nar 61
不,你应该随意覆盖to_s
- 没有不良副作用.只要您的新to_s
内容比内置信息更丰富(不是那里的高标准),您就清楚了.
并且它们有助于使您的测试失败更好 - 有时候是很多 - 这从来都不是坏事.去吧!
DGM*_*DGM 10
我to_s
在Rails项目中一直覆盖:
def to_s first_name + " " + last_name end
这样在视图中显示对象更容易:
<%= @person %>
这样做可能很棘手,因为有时候,inspect
方法只是调用to_s
,如果改变了,你可能会遇到调试问题.如果您认为to_s
当您需要通过依赖的方法查看结果时,更改可能会让您感到困惑inspect
,例如p
,那么您可能需要同时重新定义inspect
该类.只要你确定你在做什么,你可能想要这样做.