我有一个包含:email
和:user_name
的用户模型,我想使用:user_name
的一部分自动初始化:email
。
class User
include Mongoid::Document
field :email
field :user_name
end
我使用simple_form来创建用户。
如何根据:user_name
初始化:email
?
答案 0 :(得分:2)
在你的模特中: -
before_create :add_user_name
private
def add_user_name
self.user_name = self.email
end
答案 1 :(得分:1)
使用默认值:
class User
include Mongoid::Document
field :email, type: String
field :user_name, default: ->{ "email_is: #{email}" }
end
“如果要设置默认值,并依赖于文档 在lambda或proc中的self,self评估文档 实例“。
请参阅:Mongoid fields documentation
使用rails c:
进行测试u = User.new email: "name@domain.com"
u.user_name # => "email_is: name@domain.com"