[英]Rails 3 If Statement using a variable from a controller to another controller (ability.rb)
我正在使用Rails插件CanCan来处理权限检查。
我在Capacity.rb中具有以下内容:
def initialize(user, projectid_viewing)
user ||= User.new
if projectid_viewing == 8
can :manage, :all
else
can :read, :all
end
end
projectid_viewing是从以下位置发送的:
class ProjectsController < ApplicationController
before_filter :prepareCanCan, :only => [:show, :edit]
def prepareCanCan
@project = Project.find(params[:id])
projectid_viewing = @project.id
end
我上面有8个硬编码用于测试目的。 并且由于某种原因它在if语句中不起作用,我是否正确地执行了该语句? 它总是允许:管理
我有项目的控制器日志记录,所以我知道控制器设置为projectid_viewing的值为8。
想法?
我想了解…根据项目,所有用户都可以编辑它,还是可以编辑所有模型? 如果仅是项目,我会尝试:
def initialize(user)
user ||= User.new
can :manage, Project do |project|
project.id == 8
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.