首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替换此方法的合适范围是什么?

替换此方法的合适范围是什么?
EN

Stack Overflow用户
提问于 2016-08-17 02:47:55
回答 3查看 34关注 0票数 1

我有一个用来管理用户的dashboard_controller。下面是控制器:

代码语言:javascript
运行
复制
class DashboardController < ApplicationController
  before_action :authenticate_user!

  def index
    if current_user.admin?
      @users = current_user.get_organization_users
    else

    flash[:notice] = "Unauthorized Page View"
    redirect_to(tasks_url)
  end
end

注意,我使用的是@users = current_user.get_organization_users。下面是我的用户模型中的get_organization_users方法...

代码语言:javascript
运行
复制
def get_organization_users
  self.organization.users
end

我该如何用作用域替换它呢?我试过..。

代码语言:javascript
运行
复制
scope :organization_users, -> { self.organization.users }

...but没有工作。感谢您的帮助。

EN

Stack Overflow用户

发布于 2016-08-17 03:08:53

在内部,Active record converts scopes into class methods

这意味着您不能将实例方法get_organization_users替换为作用域,并期望在类的实例current_user上调用它。

您可以做的是创建一个作用域并将一个参数(很可能是用户id)传递给它,然后直接在user类上调用该作用域。

如果你愿意,我可以举一个例子,但我认为这种方法比期望的方法要长得多。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38982364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档