我不确定这个答案是否及时。
Q1。当前登录的 AdminUser 只能访问他自己的资产。
A1。使用 cancan 作为您的授权框架。默认情况下,ActiveAdmin 不为您提供授权能力。所以,关键代码可能如下所示:
# in your app/models/ability.rb
class Ability
include CanCan::Ability
def initialize(user)
can :read, Asset, :admin_user_id => user.id
end
end
更详细的Cancan使用步骤(非常简单,15分钟搞定),请参考:https ://github.com/ryanb/cancan
Q2。当前登录的 AdminUser 设置为每个 newluyy 创建的资产的 admin_user_id 字段。
A2:AdminUser 只是一个“用户”模型。因此,您可以在视图和控制器中将其称为“current_user”,就像常规的 Devise 方式一样。例如
#in your controller
def create_xx
# save the admin_user_id to the newly created asset.
Asset.create(:admin_user_id => current_user.id)
end
Devise的更多详细信息,请参见其官网:https ://github.com/plataformatec/devise