设置:
(这只是一个总结,所以不要介意小错字)
我有一个模型Deviceentry,其中包含许多需要应用默认范围的设备条目。另一个模型Sandbox有许多沙箱,用于定义用户应该能够访问设备条目的内容(以及日期上的其他限制等)。这些沙箱是用户定义的,这就是我将它们作为单独模型的原因。
所以现在我需要为Deviceentry写一个默认范围,限制所有根据沙箱访问它。我知道这将是:
def self.default_scope
Sandbox.each do |sandbox|
# compare sandbox entries with deviceentry attributes
.
.
@user.email == sandbox.email #pseudocode
end
end
我已经计划好了大部分计划 - 但这里的问题是我注意到的一个特殊比较。我需要将Sandbox的“email”条目与@ user.email进行比较。它必须是@user,而不是current_user(我有其他用户的管理员,因此对于这些情况,@ user!= current_user,他们需要查看与@user完全相同的deviceentry数据。)
有关如何处理此问题的任何建议?我一直在摸不着头脑,没有任何进展。