使用STI时派生类是继承attr_accessible吗?

时间:2010-10-07 19:26:22

标签: ruby-on-rails activerecord

对于使用STI的类系列,我有一个与此类似的类结构

class Root < ActiveRecord::Base
   attr_accessible :root_prop
end

class Child < Root
  attr_accessible :child_prop
end

class Grandchild < Child
  attr_accessible :gc_prop
end

我添加了attr_accesible标记,所有我的属性都正常工作,所以我知道它与此有关。现在似乎没有设置在基类上提供可访问状态的属性。是否需要为每个类完全设置attr_accessible,或者我是否需要在其他地方寻找未设置值的原因?

1 个答案:

答案 0 :(得分:4)

这里的评论是答案。 attr_accessible方法适用于派生类。但是,在处理关联时,accessible属性需要_id后缀

class Grandchild < Child
  attr_accessible :associated_class_id
  belongs_to :associated_class
end

是使用attr_accessible方法标记关联的正确方法。原始问题中缺少这个细节。