Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 额外的有很多要求_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails 额外的有很多要求

Ruby on rails 额外的有很多要求,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,作业:标题:字符串 权限:user\u id:integer,subject\u class:string,subject\u id:integer,action:string 分配有多个:权限,:外键=>:subject\u id 但是我如何确保它知道subject\u class==self.class.to\u的要求呢 更新:使用:conditions=>{:subject\u class=>'Assignment'},如何确保何时执行权限。还设置了新的:subject\u类。这是您希望对

作业:标题:字符串 权限:user\u id:integer,subject\u class:string,subject\u id:integer,action:string

分配有多个:权限,:外键=>:subject\u id 但是我如何确保它知道subject\u class==self.class.to\u的要求呢


更新:使用:conditions=>{:subject\u class=>'Assignment'},如何确保何时执行权限。还设置了新的:subject\u类。

这是您希望对()

在分配模型中,您将执行以下操作:

has_many :permissions, :as => :subject
在权限模型中,您可以执行以下操作:

belongs_to :subject, :polymorphic => true
但是,您需要将subject_类字段重命名为subject_类型,以使其隐式工作。当所有这些都完成后,您将从Rails中免费获得所需的一切。创建新权限时不需要传递:subject\u type。您可以创建如下权限:主题类型将自动为您填写:

assignment = Assignment.create(:title => "My Assignment")
permission = Permission.create(:subject => assignment, :action => "read", :user => current_user)

- or -

assignment.permission.create(:user => current_user, :action => "read")