【问题标题】:How To Create Clothing Items Model - Different Sizes for Shoes, Shirts, Jeans ect如何创建服装项目模型 - 鞋子、衬衫、牛仔裤等的不同尺寸
【发布时间】:2015-08-31 14:36:29
【问题描述】:

我正在创建一个在线零售店。

只是想知道你们中的一些专业人士会如何创建服装模型。

问题 鞋子有不同的尺寸,如男士 8、9、10、12 等。衬衫有 38、40、42 胸围。牛仔裤有32、34、36。连衣裙尺寸为 6、8 等。

有人会如何制作服装模型。因此,当有人创建和项目时,他们首先单击他们想要的类别。比方说鞋子,然后它会列出鞋码列表,然后您可以输入您拥有的每种鞋码的数量以及价格等所有其他属性。

【问题讨论】:

  • Stack Overflow 旨在为特定编程问题提供帮助,而不是提供设计指导。此时最好回顾一下面向对象设计的原则,注意“继承”、“组合”和“聚合”这些术语。

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4


【解决方案1】:

您可以将多态关联用于您正在寻找的解决方案。对于您的情况,您可以创建模型,如下所示

    # Your Models
    class CommonSize < ActiveRecord::Base
      belongs_to :common_sizable, :polymorphic => true
    end

    class Shoe < ActiveRecord::Base
      has_many :common_sizes, :as => :common_sizable
    end

    class Dress < ActiveRecord::Base
      has_many :common_sizes, :as => :common_sizable
    end

    class Shirt < ActiveRecord::Base
      has_many :common_sizes, :as => :common_sizable
    end

    # Your controllers
    # shoes_controller
    def create
      shoe = Shoe.new(...)
      shoe.common_size.build(...)
      shoe.save
    end
    # Similarly create other controllers

为了清楚理解rails中的多态关联,可以看视频http://railscasts.com/episodes/154-polymorphic-association

【讨论】:

  • 将模型称为CommonSize 而不是size,因为size 属于Ruby Enumerator 类。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2018-03-17
    • 2012-04-18
    • 2020-12-26
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多