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