查询关联的类

时间:2011-05-20 03:20:52

标签: jquery ruby-on-rails ruby-on-rails-3 model

如果我有一个名为Group的类,那个类我有一个 has_many:用户

我想在Group类中添加一个方法,以查看特定用户是否在该组中。如果我正在使用Devise身份验证,我可以调用current_user。

所以我想我的第一个问题是我可以从模型中调用current_user,还是需要将其传递给方法?

我的第二个问题是我应该能够做以下的事情吗?

  def has_access?
    !current_user.nil && users.where(:id == current_user.id).count(:id) > 0
  end

2 个答案:

答案 0 :(得分:2)

您不能在模型中调用current_user - 它仅在控制器和视图的范围内可用。

这意味着您的方法看起来会有所不同 - 或许尝试以下方法:

def has_access?(user)
  user.present? && users.where(:id => user.id).any?
end

答案 1 :(得分:0)

current_user是一个帮助器,因此您无法从模型中访问它,并且必须将其作为参数传递给方法,如上所述。

关于你的第二个问题,你能告诉我这个类定义了什么? 据我所知,它似乎是在组模型定义中,因为您使用“用户”,我猜是has_many关联。 如果是这样,答案显然是否定的,因为“current_user”在这里是未知的。