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