在favors_controller
我有
private
def current_resource
@favor ||= Favor.find(params[:id]) if params[:id]
end
end
然后在application_controller
我有
def current_permission
@current_permission ||= Permission.new(current_user)
end
def current_resource
nil
end
def authorize
if !current_permission.allow?(params[:controller], params[:action], current_resource)
redirect_to root_url, alert: "No no no. You can't do that!"
end
end
问题是current_resource
是零。我尝试将@favor ||= Favor.find(params[:id]) if params[:id]
直接放在应用程序控制器中,没有任何改变!您认为这是什么问题?
提前感谢您的时间!
答案 0 :(得分:2)
问题是params[:id]
不是真的,因此@favor ||= Favor.find(params[:id]) if params[:id]
语句正在评估nil