我的User
模型具有fullname
和email
属性。
我需要以某种方式覆盖方法fullname
,以便在email
为空或空时返回fullname
的值。
答案 0 :(得分:6)
我还没有尝试使用ActiveRecord,但这有用吗?
class User < ActiveRecord::Base
# stuff and stuff ...
def fullname
super || email
end
end
这取决于ActiveRecord在这些方法中的混合方式。
答案 1 :(得分:4)
要做你想做的事,你可以很容易地覆盖fullname
的默认阅读器,并执行以下操作:
class User < ActiveRecord::Base
def fullname
# Because a blank string (ie, '') evaluates to true, we need
# to check if the value is blank, rather than relying on a
# nil/false value. If you only want to check for pure nil,
# the following line wil also work:
#
# self[:fullname] || email
self[:fullname].blank? ? email : self[:fullname]
end
end