2011-02-24 51 views
1

我想弄清楚爲什麼role_users表的created_at列在爲用戶分配角色時似乎需要用戶一。它不應該有自己的創建日期?任何幫助?Acl9關聯表created_at專欄問題

紅寶石1.8.7-P174> Time.now
=>週四2月24日15時50分一十一秒+0100 2011
紅寶石1.8.7-P174> User.last.has_role! 「installer」
用戶負載(0.5ms)SELECT * FROM「users」ORDER BY users.id DESC LIMIT 1
國家負載(0.2ms)SELECT * FROM「countries」WHERE(「countries」。「id」=「 106)
角色負載(0.2ms)SELECT * FROM「roles」WHERE(name ='installer'和authorizable_type IS NULL且authorizable_id IS NULL)限制1
角色負載(0.1ms)SELECT「roles」.id FROM「角色「INNER JOIN」roles_users「ON」角色「.id =」roles_users「.role_id WHERE(」roles「。」id「= 2)AND(」roles_users「.user_id = 31)LIMIT 1
SQL(0.3ms) INSERT INTO「roles_users」(「created_at」,「updated_at」,「role_id」,「user_id」)VALUES('2010-09-16 14:11:24','2010-09 -16 14:11:24',2,31)
角色加載(0.5ms)SELECT * FROM「roles」INNER JOIN「roles_users」ON「roles」.id =「roles_users」.role_id WHERE(「roles_users」 .user_id = 31)
=> [#Role id:2,name:「installer」,authorizable_type:nil,authorizable_id:nil,created_at:「2010-09-16 14:11:24」,updated_at:「2010-角色負載(0.3ms)SELECT * FROM「roles」WHERE(「roles」)(其他角色) 「name」='installer')LIMIT 1
=>#實例ID:2,名稱:「installer」,authorizable_type:nil,authorizable_id:nil,created_at:「2010-09-16 14:11:24」的updated_at: 「通過使用acl9 2010-09-16 14點11分24秒」>

回答

1

的HABTM連接表可能不會有額外的屬性。

如果在連接表there'is created_at或updated_at屬性ActiveRecord填充此值與關聯表(角色在您的情況下)。

如果你想要這個功能,你必須編輯寶石,並添加一些:after_add回調過濾器的關係,看看這file

也是41排的updated_at是無用的,因爲在連接數據庫表中的行被創建和刪除,從未更新...

希望這可以幫助,對不起我的英語。

0

這確實是由acl9文檔中的錯誤引起的(因爲habtm連接表不應該有時間戳)。我也修正了the docs,acl9 1.2現在也有一個發生器用於移植:)