2

我正在遵循http://guides.rubyonrails.org/association_basics.html上的指南, 并创建了

class Customer < ActiveRecord::Base
  has_many :orders, :dependent => :destroy
end



class Order < ActiveRecord::Base
  belongs_to :customer
end

但执行@order = @customer.orders.create()结果

未知属性:customer_id

你知道为什么会出现这个错误吗?更重要的是,has_many 的所有指南是否有一个隐藏的原因让你在展示这个例子时发疯,但没有一个真正起作用:)

4

3 回答 3

4

您需要将 customer_id 列添加到订单表。

为此,您必须运行迁移 -

rails g 迁移 add_customer_id_to_orders customer_id:integer

然后

耙分贝:迁移

于 2012-06-23T10:15:59.390 回答
1

您将不得不在customer_id您的订单表中添加一列。

ActiveRecord 不知道要为相关订单获取哪个客户。

尝试rails g migration AddCustomerIdToOrders customer_id:integer(不要忘记 db:migrate)。

于 2012-06-23T10:10:27.743 回答
0

听起来您忘记运行迁移了。从控制台和您的 rails 项目的根目录中,运行rake db:migrate以确保 rails 已为您的关联和模型生成所有支持表和列。

于 2012-06-23T09:47:17.410 回答