Can nested attributes be used in combination with inheritance?

前端 未结 4 1551
萌比男神i
萌比男神i 2021-01-12 10:24

I have the following classes:

  • Project
  • Person
  • Person > Developer
  • Person > Ma
4条回答
  •  南方客
    南方客 (楼主)
    2021-01-12 11:04

    I encountered a similar problem few days ago. The inheritance column(i.e. type) in a STI model is a protected attribute. Do the following to override the default protection in your Person class.

    Rails 2.3

    class Person < ActiveRecord::Base
    
    private
      def attributes_protected_by_default
        super - [self.class.inheritance_column]
      end
    end
    

    Rails 3

    Refer to the solution suggested by @tokland.

    Caveat:

    You are overriding the system protected attribute.

    Reference:

    SO Question on the topic

提交回复
热议问题