0
我有一个系统,有3个角色的用户(医生,病人,管理员) 和 病人用户属于医生用户。 ) 我处理,通过创建表的用户称为“配对”如何使用“after_update”将编辑的参数传递给模型
example:
user1 patient name Mr.A pair:user2
user2 doctor name Dr.D pair:null
user3 doctor name Dr.Z pair:null
和患者用户有“味精”。(另一个表)
example:
msg1:aaa own:user1 status:0,
msg2:bbb own:user1 status:1,
msg3:ccc own:user1 status:1
(自己是另一个专栏中,我的用户的新列以确定其味精是什么)
我想要做的是当管理员编辑“对”在某些用户。 在这种情况下,如果管理员编辑对用户user1, 我想改变这一切属于所有的“味精”的状态为user1 0
example:
admin edit user1 - from pair:user2 to pair:user3
then
msg1:aaa own:user1 status:0,
msg2:bbb own:user1 status:1,
msg3:ccc own:user1 status:1
这里是我的一些代码
我的用户模型(after_update部分)(这是错误的):
after_update :doMsgStatus, :if => :pair_changed?
def doMsgStatus
old = pair_was
@msg = Msg.find_all_by_own(:name)
@msg.each do |l|
l.read = 0
l.save
end
end
从上面的代码,我想PARAM:名称是空的,所以轨道找不到任何msg_by_own和所有的味精状态是一样的。 请帮助我。
THX !它现在正在工作,但如果我想更改“user”表中的某个列,例如:self.name = MR.aa self.save,我从添加这些错误中得到“堆栈太深”的错误。 – BoBoz 2012-02-10 10:23:26
这是正常的,你在after_update回调,所以每次更新用户这个回调被触发。因此,要恢复更新用户,在更新之后,您再次更改同一用户,以便再次触发回叫,等等。 – djtal64 2012-02-10 12:56:39