我希望将其替换为名为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>"
答案 0 :(得分:7)
想出来......
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"
希望这有助于其他人。