【发布时间】:2015-02-15 22:46:34
【问题描述】:
我正在使用 Devise 和 has_scope gem 来过滤选项,并且只想显示当前用户的链接。
这行得通
@links = current_user.links.all
这不是。有人可以解释我需要做些什么来完成这项工作吗?
@links = apply_scopes(Link).current_user.all
【问题讨论】:
-
current_user 只是一个返回用户对象的方法,所以你不能像这样调用我,你可以尝试 current_user.apply_scopes(Link).all 但事实上我不确定,只是给它试一试。
-
试过了,但后来我得到了 apply_scopes 的未定义方法。
-
这是有道理的,因为 User 模型没有名为 apply_scopes 的实例方法。 ://
-
一种解决方法是在链接中创建一个接受参数 user_id 的范围,并在控制器中使用 current_user.id 传递该范围的默认值。我不熟悉 has_scope 语法,但从他们的文档来看,从逻辑上讲它肯定会起作用,希望对您有所帮助。
-
你不会碰巧有一个关于如何做到这一点的例子吗?
标签: ruby-on-rails ruby-on-rails-4 has-scope