繁体   English   中英

Rails 3 If Statement使用从一个控制器到另一个控制器的变量(ability.rb)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM