Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有更雄辩的方法来创建一个列数可变的表:activerecord&;Rails 3?_Activerecord_Ruby On Rails 3 - Fatal编程技术网

有没有更雄辩的方法来创建一个列数可变的表:activerecord&;Rails 3?

有没有更雄辩的方法来创建一个列数可变的表: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

目前我有一个订单类。每个订单有1到无穷多个项目。在运行时之前,项目数是未知的。由于active record/rails中没有字段类型的数组,如何创建可变数量的列

我能想到的唯一方法是提前指定一组票证列;但它非常缺乏灵活性和效率:

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个或多个行项目?