在Rails中建模这些关系的最佳方法

时间:2009-12-22 03:44:47

标签: ruby-on-rails model-view-controller model

我正在寻找创建一个包含三个模型的Rails应用程序。一个模型代表汽车,另一个代表汽车可以涂漆的颜色,第三个代表汽车的某种颜色的订单。构建这些模型之间关系的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

这是非常基本的东西。我建议你仔细阅读有关Active Record协会的Rails guide。为了让你前进:

class Car < ActiveRecord::Base  
    has_many :orders
    belongs_to :color
end

class Color < ActiveRecord::Base
    has_many :cars
    has_many :orders
end

class Order < ActiveRecord::Base
    belongs_to :car
    belongs_to :color
end

答案 1 :(得分:0)

我认为这与Janteh有点不同。当您下订单时,您可以订购特定颜色的特定汽车,对吧?所以我认为汽车和颜色应该通过订单关联,如下所示:

class Car < ActiveRecord::Base
  has_many :orders
end

class Color < ActiveRecord::Base
  has_many :orders
end

class Order < ActiveRecord::Base
  belongs_to :car
  belongs_to :color
end

这主要是Janteh所建议的,但我没有直接将汽车与特定颜色联系起来。

答案 2 :(得分:0)

我更喜欢has_many:通过关系。通过这种方式,您可以访问订购某辆汽车的所有颜色,并且所有汽车都以特定颜色订购。

class Car < ActiveRecord::Base
  has_many :orders
  has_many :colors, :through => :orders
end

class Color < ActiveRecord::Base
  has_many :orders
  has_many :cars, :through => :orders
end

class Order < ActiveRecord::Base
  belongs_to :car
  belongs_to :color
end