ruby on rails - How to build associations/records in models using after_create -
i have user model
has_many :trial_subscriptions accepts_nested_attributes_for :trial_subscriptions, :allow_destroy => true attr_accessible :trial_subscriptions_attributes
the trial_subscription inherits subscription model , model belongs_to :user
subscription model belongs_to :question_bank
, question bank model has_many :subscriptions, dependent: :destroy
i have form creating user , posting correctly.
i want add after_create
callback
with method starts trial subscription user , question bank subscription after user creation has been detected.
1) doing call in user model or trialsubscription model? doing in trialsubscription model
here method far
class trialsubscription < manualsubscription after_create :create_trial_subscription_for_all_qbanks def create_trial_subscription_for_all_qbanks if !trial_account_made_by.nil? #in user questionbank.all each |q| trialsubscription.create!(question_bank_id: q.id, user_id: self.id, manual_expiry_date: time.now + (2*7*24*60*60) ) end end end end
in rails c after submit new user in form, keep on doing
a = user.last a.trial_subscriptions #returns array
i think create!
should trick
put callback user
model:
#app/models/user.rb class user < activerecord::base has_many :trial_subscriptions after_create :create_trial def create_trial questionbank.all each |q| self.trial_subscriptions.build({question_bank_id: q.id, manual_expiry_date: time.now + (2*7*24*60*60)}) end self.trial_subscriptions.save end end
Comments
Post a Comment