【发布时间】:2019-09-21 17:09:16
【问题描述】:
我正在尝试学习 Rails,所以我知道我可能会遗漏一些简单的概念。
我有一份员工名单,每个人都属于一个给定的项目。登录系统的用户只能查看/管理属于其项目的人员(用户也附加到给定项目)。这意味着我在 User 和 Staff 模型中都有 project_id。
我希望 current_user 只能查看他/她自己项目的记录。 我已经在 Michael Hartl 的书中实现了身份验证系统,因此我已经定义了一个 current_user 方法并且可以正常工作。
这是我的索引操作:
def index
@staffs = Staff.where("current_user.project_id = ?", 'staff.project_id')
end
但是,我得到一个错误:
no such column: current_user.project_id
我没有想法。我该如何实现?
【问题讨论】:
-
使用
Staff.where("project_id = ?", current_user.project_id) -
行得通!谢谢你。我怎样才能把它变成一个全局的 before_action 方法来在每个控制器中使用它?
-
您可以创建一个可以返回查询的辅助方法。然后辅助方法将在整个控制器及其对应的视图中可用
-
我添加了一个示例来展示如何使用它来为 添加选项
标签: ruby-on-rails