我可以根据当前用户将默认范围设置为模型吗?

时间:2016-01-31 14:51:44

标签: ruby-on-rails acts-as-taggable-on user-roles default-scope

目前,我有User模型使用acts as taggable on来为用户提供角色"。例如,我会为MemberAdminModerator添加标签。每个用户都有Reports的关系。但是,会员应该只能看到他们的报告,主持人应该能够看到他们的报告和任何会员的报告,最后管理员应该能够看到所有报告。

目前,我在每个通过if语句访问报告的控制器页面上处理这个问题,但这似乎是一种糟糕的方式,最终会导致有人看到他们不应该报告的报告。所以这让我觉得可以对模型文件设置某种限制来在一个地方处理这个问题。

1 个答案:

答案 0 :(得分:0)

您可以在applicationController中使用request_store gem和before_filter,以便在模型中访问current_user。 但请记住,请求并不总是存在,因此请考虑可能的nils