我想使用Protector來控制未經授權的用戶可以在我的模型上看到的字段,但我無法使用它來隱藏關聯。保護與保護者的關聯
我有一個項目模型和後期模型。他們部分看起來像這樣。
class Project < ActiveRecord::Base
has_many :posts
protect do
can :read, %w(title)
cannot :read, %w(posts)
end
end
class Post < ActiveRecord::Base
belongs_to :project
protect do
cannot :read
end
end
現在讓我們說我創造了一些記錄看起來像這樣的
Project.create(title: 'project one')
User.create(email: '[email protected]')
Post.create(project_id: Project.first.id, title: 'post one')
Post.create(project_id: Project.first.id, title: 'post two')
當我問Project.first.restrict!(User.first).posts
我得到一個非空ActiveRecord的關係。我無法訪問關係中對象的標題,但我可以看到他們的ID和有多少帖子。我寧願能夠限制對Project對象的訪問,以便根本不返回任何帖子。這可能與保護者,或者我應該尋找另一種解決方案?