Rails 4 has_one 关系
Rails 4 has_one relation
我是 Rails 的新手。我做了以下迁移:
def change
add_reference :orders, :table, index: true
add_foreign_key :orders, :tables
end
我有以下型号:
class Table < ActiveRecord::Base
belongs_to :user
belongs_to :order
end
class Order < ActiveRecord::Base
belongs_to :user
has_one :table
end
在控制台中我有:
o = Order.new
o.name = "pippo"
o.user_id = 4
o.table_id=Table.first.id
o.save
o.table
我收到这个错误:
PG::UndefinedColumn: ERROR: column tables.order_id does not exist
LINE 1: SELECT "tables".* FROM "tables" WHERE "tables"."order_id" =...
有什么想法吗?
如果订单有一个 table 那么 table 需要订单的外键。所以你实际上 运行 相反的迁移。 Table 应该有 order_id 外键。
def change
add_reference :tables, :order, index: true
add_foreign_key :tables, :orders
end
然后用 order_id 创建一个 table 记录并调用 Order#table。
我是 Rails 的新手。我做了以下迁移:
def change
add_reference :orders, :table, index: true
add_foreign_key :orders, :tables
end
我有以下型号:
class Table < ActiveRecord::Base
belongs_to :user
belongs_to :order
end
class Order < ActiveRecord::Base
belongs_to :user
has_one :table
end
在控制台中我有:
o = Order.new
o.name = "pippo"
o.user_id = 4
o.table_id=Table.first.id
o.save
o.table
我收到这个错误:
PG::UndefinedColumn: ERROR: column tables.order_id does not exist
LINE 1: SELECT "tables".* FROM "tables" WHERE "tables"."order_id" =...
有什么想法吗?
如果订单有一个 table 那么 table 需要订单的外键。所以你实际上 运行 相反的迁移。 Table 应该有 order_id 外键。
def change
add_reference :tables, :order, index: true
add_foreign_key :tables, :orders
end
然后用 order_id 创建一个 table 记录并调用 Order#table。