使用
使用
使用
使用
与其在模型中重写to_s
,不如将其别名为一个名为full_name
的现有方法。
alias
和alias_method
似乎都没有按预期工作。
使用alias
class Person < ActiveRecord::Base
# ... other model code.
alias to_s full_name
def full_name
"#{first_name} #{last_name}"
end
end
# In Terminal
> Person.last.to_s #=> "#<Person:0x007fa5f8a81b50>"
使用alias_method
class Person < ActiveRecord::Base
# ... other model code.
alias_method :to_s, :full_name
def full_name
"#{first_name} #{last_name}"
end
end
# In Terminal
> Person.last.to_s #=> "#<Person:0x007fa5f8a81b50>"
想好了。。。
alias
和alias_method
需要出现在要别名的方法之后。
因此,以下两种方法都很好:
使用alias
class Person
def full_name
"#{first_name} #{last_name}"
end
alias to_s full_name
end
# In Terminal
> Person.last.to_s #=> "Don Draper"
使用alias_method
class Person
def full_name
"#{first_name} #{last_name}"
end
alias_method :to_s, :full_name
end
# In Terminal
> Person.last.to_s #=> "Don Draper"
希望这能帮助其他人