Guest User

Untitled

a guest
Feb 20th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. require 'rubygems'
  2. require 'sequel'
  3.  
  4. DB = Sequel.connect('jdbc:mysql://localhost/sequel_test?user=root&password=')
  5.  
  6. DB.create_table! :policies do # Create a new table
  7. primary_key :id, :serial
  8. date :term_start_date
  9. varchar :policy_ref, :size => 30
  10. end
  11.  
  12. DB.create_table! :covers do
  13. primary_key :id, :serial
  14. foreign_key :policy_id, :policies
  15. varchar :cover_code, :size => 30
  16. boolean :is_primary
  17. end
  18.  
  19. DB.create_table! :mod_factors do
  20. integer :policy_id
  21. varchar :cover_code, :size => 30
  22. varchar :prem_mod_type
  23. float :prem_mod_value
  24. # foreign_key [:policy_id, :cover_code], :covers
  25. end
  26.  
  27. class Policy < Sequel::Model
  28. set_primary_key :id
  29. has_many :covers
  30. set_allowed_columns :term_start_date, :policy_ref, :cover_attributes
  31.  
  32. def after_initialize
  33. puts self.id
  34. 1.upto(3) do |i|
  35. add_cover(Cover.new({:cover_code => i}))
  36. end
  37. end
  38.  
  39. def cover_attributes=(attribs)
  40. puts "cover_attributes="
  41. end
  42. end
  43.  
  44. class Cover < Sequel::Model
  45. has_many :mod_factors
  46. belongs_to :policy
  47. end
  48.  
  49. class ModFactor < Sequel::Model
  50. belongs_to :cover
  51. end
  52.  
  53. p = Policy.new.set({
  54. :term_start_date => Date.today,
  55. :cover_attributes => [{:cover_code => "1020"}]})
  56.  
  57. p.save
Add Comment
Please, Sign In to add comment