Rails ActiveRecord:登录用户的默认范围

时间:2013-09-26 12:00:33

标签: ruby-on-rails authentication activerecord scope

我有一个与用户关联的帖子模型(想想'帖子所有者')。

class Post < ActiveRecord
  belongs_to :user
  (...)
end

在我的Post#index动作/视图中,我想只显示属于当前登录用户的帖子。

因此,第一种方法是以某种方式在Post模型中设置默认范围,但由于current_user仅在运行时已知,因此不适合模型(在MVC意义上),而是在控制器中。

那么,在控制器中实现“默认范围”的轨道方式是什么?

2 个答案:

答案 0 :(得分:2)

如果您的用户类与其帖子有关联,请执行以下操作:

class User < ActiveRecord::Base
  has_many :posts
end

然后在您的控制器中,您只需使用

current_user.posts

获取当前用户的所有帖子

答案 1 :(得分:1)

最简单,最干净的方法是为当前用户的帖子设置范围(在控制器中):

current_user.posts

您可以在其上方链接多个选择。

相关问题