我有一个带有:email
and的用户模型:user_name
,我想:user_name
用 的一部分自动初始化:email
。
class User
include Mongoid::Document
field :email
field :user_name
end
我使用 simple_form 创建用户。我怎样才能初始化:user_name
基于:email
?
我有一个带有:email
and的用户模型:user_name
,我想:user_name
用 的一部分自动初始化:email
。
class User
include Mongoid::Document
field :email
field :user_name
end
我使用 simple_form 创建用户。我怎样才能初始化:user_name
基于:email
?
在您的模型中:-
before_create :add_user_name
private
def add_user_name
self.user_name = self.email
end
默认情况下使用:
class User
include Mongoid::Document
field :email, type: String
field :user_name, default: ->{ "email_is: #{email}" }
end
“如果您想设置依赖于文档状态的默认值,则 lambda 或 proc 中的 self 将评估为文档实例。”
请参阅:Mongoid 字段文档
用rails c测试:
u = User.new email: "name@domain.com"
u.user_name # => "email_is: name@domain.com"