我有一個作家類:爲什麼Ruby不會自動執行to_s?
class Author < ActiveRecord::Base
def to_s
name
end
end
定義to_s
允許我做puts Author.first
,但不puts Author.first.rjust(10)
:
NoMethodError: undefined method `rjust' for #<Author:0x21eb5d4>
,那豈不是更好,如果紅寶石的字符串的方法之前,自動嘗試to_s
像這樣的情況?有沒有辦法得到這種行爲?
`super.method_missing(s,* a)`不正確。它應該只是`super`,它使用相同的參數來調用超類的方法版本。在Ruby中,super就像一個方法而不是接收者。 – Chuck 2009-06-14 01:21:30