Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Relationship - Fatal编程技术网

Ruby on rails 多态类与多态类有很多联系

Ruby on rails 多态类与多态类有很多联系,ruby-on-rails,relationship,Ruby On Rails,Relationship,我的多态关联有问题 role.rb class Role < ActiveRecord::Base belongs_to :resource, polymorphic: true end 看看-看起来Rails不支持这种开箱即用(至少通过Rails 4.2-不确定您使用的是哪个版本)。看起来最好的解决方案可能是重写\u type方法。看起来可能还有一块宝石:不清楚你想要什么。请重新措辞,并明确说明您正试图完成的任务。感谢您的回复,我使用“范围”或自定义函数来完成此任务。。。 clas

我的多态关联有问题

role.rb

class Role < ActiveRecord::Base
  belongs_to :resource, polymorphic: true
end

看看-看起来Rails不支持这种开箱即用(至少通过Rails 4.2-不确定您使用的是哪个版本)。看起来最好的解决方案可能是重写
\u type
方法。看起来可能还有一块宝石:

不清楚你想要什么。请重新措辞,并明确说明您正试图完成的任务。感谢您的回复,我使用“范围”或自定义函数来完成此任务。。。
class Structure < ActiveRecord::Base
  has_many :roles, as: :resource
end
class Association < Structure
end
def add_role role_name, resource = nil
  role = Role.find_or_create_by(name: role_name.to_s,
    resource_type: (resource.is_a?(Class) ? resource.to_s : resource.class.name if resource),
    resource_id: (resource.id if resource && !resource.is_a?(Class)))

  if !roles.include?(role)
    self.roles << role
    self.save
  end
  role
end
SELECT `roles`.* FROM `roles`  WHERE `roles`.`resource_id` = 1 AND `roles`.`resource_type` = 'Structure'