У меня есть система, которая имеет 3 роли пользователя (врач, пациент, администратор)
а также
пользователь пациента принадлежит врачу (для привязки каждого пациента к врачу)
Я справляюсь с этим, создавая новый столбец в таблице user под названием "pair"
example:
user1 patient name Mr.A pair:user2
user2 doctor name Dr.D pair:null
user3 doctor name Dr.Z pair:null
и у пациента есть сообщение "msg" (другая таблица)
example:
msg1:aaa own:user1 status:0,
msg2:bbb own:user1 status:1,
msg3:ccc own:user1 status:1
(собственный - это другой пользователь I столбца, чтобы определить, чье это сообщение)
Что я хочу сделать, так это когда администратор редактирует «пару» в каком-то пользователе.
В этом случае, если администратор отредактирует пару user1,
Я хочу изменить все статусы всех сообщений "msg", которые принадлежат 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: name пусто, поэтому rails не может найти ни одного сообщения msg_by_own, и все состояния сообщений совпадают.
Помогите мне, пожалуйста.