Ruby on rails Rails:根据另一个字段以编程方式保存和更新数据库中的数据
我正在使用Rails 3和mongoid 我想根据另一条记录中的值来保存或更新一条记录中的值 例如:Ruby on rails Rails:根据另一个字段以编程方式保存和更新数据库中的数据,ruby-on-rails,ruby-on-rails-3,mongoid,Ruby On Rails,Ruby On Rails 3,Mongoid,我正在使用Rails 3和mongoid 我想根据另一条记录中的值来保存或更新一条记录中的值 例如: class User include Mongoid::Document field :account_level, :type => Integer end class Profile include Mongoid::Document field :position, :type => Integer end 如果用户中的帐户级别为1,则配置文件中的位置也应
class User
include Mongoid::Document
field :account_level, :type => Integer
end
class Profile
include Mongoid::Document
field :position, :type => Integer
end
如果用户中的帐户级别
为1,则配置文件中的位置
也应更新为1。如果account\u级别为2,则
position`应为2
这应该以编程方式完成,不需要用户输入,也不需要在客户端使用不可见的输入字段(必须有更好的方法来完成)
额外的问题…我有以下逻辑(对于位置
),我将如何做
account\u级别
1=position
1account\u级别
2=position
1account\u level
3=position
5不确定我是否理解你的问题
尝试回调():
例如,在用户类中:
before_save :set_equals_account_level_and_position
def set_equals_account_level_and_position
profile.position = account_level
profile.save!
end
不知道我是否理解你的问题 尝试回调(): 例如,在用户类中:
before_save :set_equals_account_level_and_position
def set_equals_account_level_and_position
profile.position = account_level
profile.save!
end
看来你明白了。如果profile.position与account_级别不是1:1的关系呢。是否有一种方法可以根据问题的某种逻辑(这是“额外问题”)保存不同的值。如果不是1:1关系,是什么关系?你所说的逻辑类型是什么意思?例如,如果我想将值为1和2的
帐户级别
转换为值为1的职位
,或者将值为3的帐户级别
转换为值为5的职位
,看起来你确实理解了。如果profile.position与account_级别不是1:1的关系呢。是否有一种方法可以根据问题的某种逻辑(这是“额外问题”)保存不同的值。如果不是1:1关系,是什么关系?你所说的逻辑类型是什么意思?例如,如果我想将值为1和2的帐户级别
转换为值为1的职位
,或者将值为3的帐户级别
转换为值为5的职位
。