【发布时间】:2015-11-10 06:06:07
【问题描述】:
我最初在 Restricting any access to a model in rails 中提出了类似的问题 - 但这并没有满足我的全部需求。
我有一个包含许多条目的 Dataapi 模型:
create_table "dataapis", force: :cascade do |t|
t.string "device_id"
t.datetime "start_time"
t.datetime "end_time"
end
我有一个沙盒模型,其中包含有关如何限制访问的信息(沙盒条目在我的管理面板中定义)。
create_table "sandboxes", force: :cascade do |t|
t.integer "device_id"
t.integer "user_id"
t.datetime "start_date"
t.datetime "end_date"
end
实际上,我只希望用户在沙盒中有适当的条目时才能访问 dataapi,这通过以下方式限制访问: - 用户 - 开始日期时间 - 结束日期时间 - 访问发送 dataapi 的设备(已在上一个问题中处理了该部分)。
我似乎无法找到一种方法来做到这一点 - 模型无权访问@user,所以我无法在默认范围内检查它。有什么建议吗?我试过查看 gem(CanCanCan、Pundit 等),但它们只进行基于控制器的授权。我希望此限制适用于对 dataapi 的 所有 查询,无论控制器调用它。
【问题讨论】:
标签: ruby-on-rails ruby postgresql