我正在使用Rails 3和mongoid。
我想根据另一条记录中的值保存或更新一条记录中的值。
例如:
class User
include Mongoid::Document
field :account_level, :type => Integer
end
class Profile
include Mongoid::Document
field :position, :type => Integer
end
如果User中的account_level
为1,则Profile中的position
也应更新为1。如果account_level is 2, then
position`应为2。
这应该以编程方式完成,无需用户输入或使用客户端上的不可见输入字段(必须有更好的方法来执行此操作)。
额外的问题......我有什么以下逻辑(对于position
),我该怎么做?
account_level
1 = position
1
account_level
2 = position
1
account_level
3 = position
5
答案 0 :(得分:3)
不确定我是否理解你的问题。
尝试使用回调(http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html):
例如,在User类中:
before_save :set_equals_account_level_and_position
def set_equals_account_level_and_position
profile.position = account_level
profile.save!
end