product_attr_config.rb 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. class ProductAttrConfig < ActiveRecord::Base
  2. has_paper_trail
  3. self.table_name = 'product_attr_configs'
  4. belongs_to :product_attr_key, :foreign_key => :attr_key_id
  5. belongs_to :product
  6. validates :size_type,:product_id,:product_attr_key,presence:true
  7. attr_accessor :show_products
  8. PRODUCT_ENUM = []
  9. def get_show_product
  10. PRODUCT_ENUM.clear
  11. if PRODUCT_ENUM.length==0
  12. @products = Product.where("show_flag=1").order("created_at desc")
  13. @products.each do |pd|
  14. a=[pd.name,pd.id]
  15. PRODUCT_ENUM.push(a)
  16. end
  17. end
  18. return PRODUCT_ENUM
  19. end
  20. TYPE_ENUM = [["规格一","size"],["规格二","color"]]
  21. rails_admin do
  22. navigation_label '商品管理'
  23. weight -250
  24. parent ProductAttrKey
  25. nestable_tree({
  26. position_field: :position,
  27. max_depth: 2
  28. })
  29. list do
  30. filters [:product,:product_attr_key]
  31. field :id
  32. =begin
  33. field :product_id, :enum do
  34. enum do
  35. PRODUCT_ENUM
  36. end
  37. end
  38. =end
  39. field :product
  40. field :product_id
  41. field :product_attr_key
  42. field :size_type, :enum do
  43. enum do
  44. TYPE_ENUM
  45. end
  46. end
  47. end
  48. show do
  49. field :id
  50. field :product_id, :enum do
  51. enum do
  52. PRODUCT_ENUM
  53. end
  54. end
  55. field :product_id
  56. field :product_attr_key
  57. field :size_type, :enum do
  58. enum do
  59. TYPE_ENUM
  60. end
  61. end
  62. end
  63. edit do
  64. =begin
  65. field :product_id, :enum do
  66. enum do
  67. PRODUCT_ENUM
  68. end
  69. end
  70. =end
  71. field :product_id, :enum do
  72. enum do
  73. bindings[:object].get_show_product
  74. end
  75. end
  76. field :product_attr_key
  77. field :size_type, :enum do
  78. enum do
  79. TYPE_ENUM
  80. end
  81. end
  82. end
  83. end
  84. end