Guest User

Untitled

a guest
Dec 11th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. # == Schema Information
  2. # Schema version: 20110504074503
  3. #
  4. # Table name: orders
  5. #
  6. # id :integer not null, primary key
  7. # user_id :integer not null
  8. # internal_name :string(255) not null
  9. # external_name :string(255)
  10. # state :string(255)
  11. # created_at :datetime
  12. # updated_at :datetime
  13. #
  14.  
  15. class Order < ActiveRecord::Base
  16.  
  17. has_paper_trail
  18.  
  19. belongs_to :user
  20. has_many :multipage_pdfs, :as => :assetable, :dependent => :destroy
  21. has_many :pages, :dependent => :destroy
  22.  
  23. validates_presence_of :user, :user_id, :internal_name, :state
  24. validates_numericality_of :user_id
  25.  
  26. state_machine :initial => :waiting do
  27.  
  28. event :start_processing do
  29. transition any => :processing
  30. end
  31.  
  32. event :processed do
  33. transition :processing => :processed
  34. end
  35.  
  36. end
  37.  
  38.  
  39. end
  40.  
  41.  
  42. # == Schema Information
  43. # Schema version: 20110509124929
  44. #
  45. # Table name: assets
  46. #
  47. # id :integer not null, primary key
  48. # assetable_id :integer not null
  49. # assetable_type :string(255) not null
  50. # type :string(255) not null
  51. # state :string(255) not null
  52. # document_file_name :string(255)
  53. # document_content_type :string(255)
  54. # document_file_size :integer
  55. # document_updated_at :datetime
  56. # created_at :datetime
  57. # updated_at :datetime
  58. #
  59.  
  60. class Asset < ActiveRecord::Base
  61. require 'tmpdir'
  62.  
  63. belongs_to :assetable, :polymorphic => true
  64.  
  65. end
  66.  
  67.  
  68. class MultipagePdf < Asset
  69.  
  70. after_save :split
  71. has_attached_file :document
  72.  
  73.  
  74. state_machine :initial => :waiting do
  75.  
  76. event :splitted do
  77. transition :waiting => :splitted
  78. end
  79.  
  80. event :failed do
  81. transition :waiting => :failed
  82. end
  83.  
  84. end
  85.  
  86. protected
  87.  
  88. def split
  89. # ...
  90. end
  91.  
  92. end
  93.  
  94.  
  95.  
  96. irb(main):001:0> o = Order.new(:internal_name => "test", :user_id => 1)
  97. => #<Order id: nil, user_id: 1, internal_name: "test", external_name: nil, state: "waiting", created_at: nil, updated_at: nil>
  98. irb(main):003:0> p = o.multipage_pdfs.build
  99. => #<MultipagePdf id: 3, assetable_id: 4, assetable_type: "Order", type: "MultipagePdf", state: "failed", document_file_name: nil, document_content_ty
  100. pe: nil, document_file_size: nil, document_updated_at: nil, created_at: "2011-05-10 07:21:19", updated_at: "2011-05-10 07:21:19">
  101. irb(main):004:0> p.new_record?
  102. => false
Add Comment
Please, Sign In to add comment