scale_user.rb 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. # encoding:utf-8
  2. class ScaleUser < ActiveRecord::Base
  3. has_paper_trail
  4. self.table_name = "scale_users"
  5. belongs_to :wx_user
  6. attr_accessor :v_head
  7. #after_create :update_paied_time
  8. SEX_ENUM = [["男",0],["女",1]]
  9. def get_avatar_img
  10. url = "http://#{Ali::Oss::CDN_URL_FOR_HOST}/#{self.avatar}"
  11. return url
  12. end
  13. rails_admin do
  14. navigation_label '体脂秤用户'
  15. parent ScaleDevice
  16. weight 1
  17. list do
  18. filters [:wx_user,:created_at]
  19. field :id
  20. field :wx_user_id
  21. field :wx_user
  22. field :nick_name
  23. field :avatar do
  24. formatted_value do
  25. bindings[:view].tag(:img,{:src => bindings[:object].get_avatar_img,
  26. :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px',
  27. :onClick => "javascript:window.open('#{bindings[:object].get_avatar_img}')"})
  28. end
  29. end
  30. field :sex, :enum do
  31. filterable true
  32. enum do
  33. SEX_ENUM
  34. end
  35. end
  36. field :height
  37. field :age
  38. field :target_weight
  39. field :birthday
  40. field :created_at
  41. field :updated_at
  42. end
  43. show do
  44. field :wx_user_id
  45. field :wx_user
  46. field :nick_name
  47. field :avatar do
  48. formatted_value do
  49. bindings[:view].tag(:img,{:src => bindings[:object].get_avatar_img,
  50. :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px',
  51. :onClick => "javascript:window.open('#{bindings[:object].get_avatar_img}')"})
  52. end
  53. end
  54. field :sex, :enum do
  55. filterable true
  56. enum do
  57. SEX_ENUM
  58. end
  59. end
  60. field :height
  61. field :age
  62. field :target_weight
  63. field :birthday
  64. field :created_at
  65. field :updated_at
  66. end
  67. edit do
  68. field :wx_user_id
  69. field :wx_user
  70. field :nick_name
  71. field :v_avatar, :file_upload do
  72. pretty_value do
  73. bindings[:view].tag(:img, {:src => bindings[:object].get_avatar_img, :class => 'preview'})
  74. end
  75. end
  76. field :sex, :enum do
  77. filterable true
  78. enum do
  79. SEX_ENUM
  80. end
  81. end
  82. field :height
  83. field :age
  84. field :target_weight
  85. field :birthday
  86. field :created_at
  87. field :updated_at
  88. end
  89. end
  90. def v_avatar=file
  91. unless file.blank?
  92. clear_avatar_img
  93. file_name = "#{UUID.new.generate[0...8].downcase}.jpg"
  94. file_path = "#{IMG_STORE_PATH}/#{file_name}"
  95. Ali::Oss.store(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path, file.read)
  96. self.head = file_path
  97. self.save
  98. end
  99. end
  100. def clear_avatar_img
  101. file_path = "#{self.head}"
  102. Ali::Oss.delete_object(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path)
  103. end
  104. end