我正在使用Rails插件CanCan来处理权限检查。
我在ability.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语句中工作,我做错了吗?它始终允许can:manage
我有Project的控制器记录,所以我知道控制器设置为projectid_viewing的值是8。
想法?
答案 0 :(得分:1)
我正在尝试理解......根据项目的不同,所有用户都可以编辑它,或者可以编辑所有模型?如果只是项目,我会尝试:
def initialize(user)
user ||= User.new
can :manage, Project do |project|
project.id == 8
end
end