2012-10-24 18 views
2

我正在使用activeadmin並需要弄清楚如何要求作用域僅顯示與當前用戶有關的記錄。需要在activeadmin資源中的作用域

我也有其他的範圍,用戶可以選擇,但這些範圍需要「預先確定範圍」,以便只有屬於該用戶的記錄在任何給定時間可用。

我希望這是有道理的。我對這一切都很陌生,所以我不確定從哪裏開始。預先感謝您的幫助。

回答

1

您試過與scope_to :current_user範圍有關嗎?

AA有一些文檔示例。在這裏,他們是 http://activeadmin.info/docs/2-resource-customization.html#scoping_the_queries

CURRENT_USER是輔助方法,目前獲得登錄的用戶(currend_admin_user是默認的,我認爲)從AA初始化

# This setting changes the method which Active Admin calls 
# to return the currently logged in user. 
config.current_user_method = :current_user 

代碼如果你有某種梅託德的模型中使用你登錄的用戶,你可以做這樣的事情

controller do 
     def scoped_collection 
     Post.some_method(current_user) 
     #or for example Post.select(current_user.visible_posts_columns) ... etc 
     end 
    end 
+0

好吧,我不知道scope_to部分,我會檢查它今晚。我有自定義身份驗證以及我正在使用的cancan。我不確定這是否會影響事物,但我認爲AA 0.5.0的新版本應該以某種方式使用康康來只顯示適用的記錄。初始化程序中是否有需要爲此設置的配置?你用過0.5.0嗎?再次感謝! – Sean

+0

如果我明白你可以使用scoped_collection方法來「預先確定」你的數據 – Fivell