Чтобы сделать то, что вы хотите, вы можете легко переопределить программу чтения по умолчанию для 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