![](/img/trans.png)
[英]How to access current_user in partial of public_activity gem?
[英]Access current_user from a gem
您可能聽說過Pundit。 https://github.com/elabs/pundit基本上,這是一個授權工具。
我想知道的是,它如何訪問其類中的變量current_user
?
我不知道如何,但是@user
和user
在某種程度上都等於current_user
class PostPolicy
attr_reader :user, :post
def initialize(user, post)
@user = user
@post = post
end
def update?
user.admin? or not post.published?
end
end
我們在這個類中也有post變量。 我們可以通過運行來訪問它
def publish
@post = Post.find(params[:id])
authorize @post
end
在行動中。
要安裝Pundit,您需要將該模塊包含在應用程序控制器中:
class ApplicationController < ActionController::Base
include Pundit
end
但是,我仍然看不到該類如何“查詢” current_user的控制器,以及如何授權將變量(post)提供給該類。 請回答這兩個問題:)
PostPolicy
類不查詢任何內容。
authorize
方法是一個控制器實例方法,因此它只能調用current_user
。 您已經傳遞了@post
,它用於確定要使用的策略類。 然后,它創建該類的新實例,並傳遞current_user
和@post
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.