正在使用的相关项目:Rails 3.2,Mongoid和devise。
我有以下两种模式:
class User
include Mongoid::Document
include Mongoid::Timestamps
has_one :profile, autosave: true, dependent: :delete
field :account_level
end
class Profile
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :user
field :display_position
end
我的应用程序已设置,因此在成功注册帐户(用户)后,该人员将自动重定向以创建新的个人资料。 account_level
是根据应用程序中的其他逻辑自动定义的。
我希望根据用户模型的display_position
自动填充account_level
的值。
我已经尝试了各种方法来实现这一点,但我似乎可以解决这个问题。
实现这一目标的最佳方式是什么?
答案 0 :(得分:0)
正如人们在评论中所说,使用回调:
class User
include Mongoid::Document
include Mongoid::Timestamps
has_one :profile, autosave: true, dependent: :delete
field :account_level
end
class Profile
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :user
field :display_position
before_create do
self.display_position = self.user.account_level
end
end
然后在控制台中你可以查看它:
user = User.create( account_level: 'hello')
profile = Profile.create( user: user )
profile.display_position
=> "hello"