对于使用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,或者我是否需要在其他地方寻找未设置值的原因?
答案 0 :(得分:4)
这里的评论是答案。 attr_accessible方法适用于派生类。但是,在处理关联时,accessible属性需要_id后缀
class Grandchild < Child
attr_accessible :associated_class_id
belongs_to :associated_class
end
是使用attr_accessible方法标记关联的正确方法。原始问题中缺少这个细节。