【发布时间】:2014-04-03 18:42:01
【问题描述】:
正在使用的相关项目:Rails 3.2、Mongoid 和设计。
我有以下两种型号:
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 是根据应用中的一些其他逻辑自动定义的。
我希望根据 User 模型的 account_level 自动填充 display_position 的值。
我已经尝试了各种方法来让它工作,但我似乎可以弄明白。
实现这一目标的最佳方法是什么?
【问题讨论】:
-
在您的模型上使用
before_save或before_create过滤器。 -
我已经完成了,但关联已创建。当我尝试运行
self.position_order = profile.user.account_level时,它会引发错误,因为尚未使用配置文件创建用户关联。 -
然后尝试
after_save或after_create过滤。 -
试过了...都不行。这对我来说没有意义。这就是为什么我认为我一定在做一些根本错误的事情。
标签: ruby-on-rails ruby ruby-on-rails-3 devise mongoid