ruby on rails - dependent: :destroy not working -


i have following situation:

user.rb

class user < activerecord::base   # include default devise modules. others available are:   # :confirmable, :lockable, :timeoutable , :omniauthable   devise :database_authenticatable, :registerable,          :recoverable, :rememberable, :trackable, :validatable    after_create :create_profile   after_create :programstart    has_one :profile, dependent: :destroy   has_many :weights, dependent: :destroy   has_many :programstarts, dependent: :destroy    has_many :user_nutrients, dependent: :destroy   has_many :nutrients, through: :user_nutrients, dependent: :destroy     private    def programstart     programstart.create(:user_id => id)   end end 

nutrient.rb

class nutrient < activerecord::base   validates :name, uniqueness: true    has_many :user_nutrients   has_many :users, through: :user_nutrients end 

user_nutrient.rb

class usernutrient < activerecord::base   belongs_to :user    belongs_to :nutrient end 

for profile, weights , programstarts dependent: :destroy works. associated database entries removed when delete user. however, user_nutrients dependent: :destroy not working. after deleting user these entries stil there.

what missing here?

according post - http://makandracards.com/makandra/32175-don-t-forget-automatically-remove-join-records-on-has_many-through-associations should following:

has_many :user_nutrients has_many :nutrients, through: :user_nutrients, dependent: :destroy 

and in nutrient.rb

has_many :user_nutrients has_many :users, through: :user_nutrients, dependent: :destroy