Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MailableEvent < ApplicationRecord
- has_and_belongs_to_many :email_addresses
- end
- class EmailAddress < ApplicationRecord
- has_and_belongs_to_many :mailable_events
- validates :address, uniqueness: true
- end
- ...
- email_address_array.each do |address|
- @email_address_obj = EmailAddress.find_by_address(address)
- unless @email_address_obj
- @mailable_event.email_addresses.new(address: address,unsubscribe: false)
- @mailable_event.save
- else
- @mailable_event.save
- event_fk = @mailable_event.id
- email_fk = @email_address_obj.id
- sql_insert = "INSERT INTO email_addresses_mailable_events("mailable_event_id", "email_address_id") VALUES(#{event_fk},#{email_fk});"
- ActiveRecord::Base.connection.execute(sql_insert)
- end
- > Look up first email address in email_addresses table and load it in. # @email_address_obj = EmailAddress.find_by(address: 'something@gmail.com')
- > Save the record({ serial number '456'}) associating it with 'something@gmail.com' too # @email_address_obj.mailable_events.create(@mailable_event.attributes)
- > Look up second email address in EA table and load it in. # @email_address_obj = EmailAddress.find_by(address: 'anything@gmail.com')
- > Just associate the record({ serial number '321'}) with 'anything@gmail.com' # which means nothing has to be updated in Models and only a new entry { id: 'xx', EE_FK: 'xx', EA_FK: 'xx' } in join table has to be inserted, for which I cannot use @ea_object.mailable_events.create(@mailable_event.attributes) coz it will create a new duplicate EE record.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement