2015-06-30 19 views
0

我已經能夠爲用戶的名稱是否正確追加到Whodunnit領域採取行動,加入這個我application_controller定製Whodunnit信息

def user_for_paper_trail                      
    current_user ? current_user.name : 'Public user'               
end 

這工作得很好。

但是,如果用戶使用Rails Admin進行更改,則whodunnit仍會設置爲用戶標識。

有沒有一種方法,我可以打電話告訴紙條當我通過Rails Admin更新記錄時,我想存儲什麼細節?

回答

1

RailsAdmin對此有一些問題。你會發現以下有用的:Display custom label for User in rails_admin paper_trail history。因爲該字段應該存儲ID(即使它是一個字符串字段),我會保留這些ID並存儲'Public user''0'(當然是由一個常數引用)的東西。然後我會覆蓋whodunnit方法返回'Public user'的情況下super == '0'

如果您已經有一堆帶有ID的whodunnit字段的版本,或者您有多個具有相同名稱的用戶,那麼這種方法會特別有用。

P.S.要快速確認RailsAdmin完全忽略/不忽略您定義的控制器方法,只需在方法中強制引發錯誤。

+0

感謝您的支持! 我們的用例純粹是爲了報告,這就是爲什麼我們有信心將id更改爲名稱的原因。使用它的團隊發現這些ID是無用的,因爲他們只需要知道該去哪裏並且談論編輯。 我們永遠不會用紙質記錄恢復變化或做任何事情,其中​​whodunnit將被實際使用。 – Toby