从rails中的另一个模型(不是current_user)访问@user

时间:2015-09-01 18:13:46

标签: ruby-on-rails ruby-on-rails-4

设置:

(这只是一个总结,所以不要介意小错字)

我有一个模型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数据。)

有关如何处理此问题的任何建议?我一直在摸不着头脑,没有任何进展。

0 个答案:

没有答案