有没有更雄辩的方法来创建一个列数可变的表:activerecord&;Rails 3?
目前我有一个订单类。每个订单有1到无穷多个项目。在运行时之前,项目数是未知的。由于active record/rails中没有字段类型的数组,如何创建可变数量的列 我能想到的唯一方法是提前指定一组票证列;但它非常缺乏灵活性和效率:有没有更雄辩的方法来创建一个列数可变的表:activerecord&;Rails 3?,activerecord,ruby-on-rails-3,Activerecord,Ruby On Rails 3,目前我有一个订单类。每个订单有1到无穷多个项目。在运行时之前,项目数是未知的。由于active record/rails中没有字段类型的数组,如何创建可变数量的列 我能想到的唯一方法是提前指定一组票证列;但它非常缺乏灵活性和效率: class CreateOrders < ActiveRecord::Migration def self.up t.integer :ticket_id, :ticket_id, :ticket_id, :ticket_id, :ticket_id
class CreateOrders < ActiveRecord::Migration
def self.up
t.integer :ticket_id, :ticket_id, :ticket_id, :ticket_id, :ticket_id
t.decimal :total
t.timestamps
end
def self.down
drop_table :orders
end
end
class CreateOrders
通常,第三种标准形式的数据库表的列数不可变
您可以有两个表,一个用于订单,它“有许多”行项目,因此此行项目模型将在行项目表中存储条目,每个记录都有产品id和数量,并且每个行项目“属于”订单。(具有订单id,或行项目。订单指的是它所属的订单)。通常,第三种标准形式的数据库表不会有可变的列数
您可以有两个表,一个用于订单,它“有许多”行项目,因此此行项目模型将在行项目表中存储条目,每个记录都有产品id和数量,并且每个行项目“属于”订单。(有订单id,或行项目。订单指的是它所属的订单)。您必须使用另一个名为items的表,该表将有一个订单id列。因此,许多项目可以关联到单个订单。换句话说,一个订单可以有许多项目
阅读此解释订单,其中包含许多发票(在您的案例中为项目) 您必须使用另一个名为items的表,该表将有一个order\u id列。因此,许多项目可以关联到单个订单。换句话说,一个订单可以有许多项目
阅读此解释订单,其中包含许多发票(在您的案例中为项目) 如前所述,您希望将其建模为属于/拥有许多关系
class CreateOrders < ActiveRecord::Migration
def self.up
t.decimal :total
t.timestamps
end
def self.down
drop_table :orders
end
end
class CreateItems < ActiveRecord::Migration
def self.up
t.integer :ticket_id
t.integer :order_id
t.timestamps
end
def self.down
drop_table :items
end
end
class Order < ActiveRecord::Base
has_many :items, :dependent => "destroy"
end
class Item < ActiveRecord::Base
belongs_to :order
end
Order.all.each do |order|
puts "Order " + order + " has items :"
order.items.each { |item| puts " " + item }
end
class CreateOrders“destroy”
结束
类项
如前所述,您希望将其建模为一种属于/拥有许多关系
class CreateOrders < ActiveRecord::Migration
def self.up
t.decimal :total
t.timestamps
end
def self.down
drop_table :orders
end
end
class CreateItems < ActiveRecord::Migration
def self.up
t.integer :ticket_id
t.integer :order_id
t.timestamps
end
def self.down
drop_table :items
end
end
class Order < ActiveRecord::Base
has_many :items, :dependent => "destroy"
end
class Item < ActiveRecord::Base
belongs_to :order
end
Order.all.each do |order|
puts "Order " + order + " has items :"
order.items.each { |item| puts " " + item }
end
class CreateOrders“destroy”
结束
类项
如何设置订单平板电脑以接受1个或多个行项目?如何设置订单平板电脑以接受1个或多个行项目?