我正在关注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的所有指南都有一个隐藏的原因,可以通过显示这个示例来驱使你疯狂,但是没有它们实际上正在工作:)
答案 0 :(得分:4)
您需要将customer_id列添加到订单表。
为此你必须运行迁移 -
rails g migration add_customer_id_to_orders customer_id:integer
然后
rake db:migrate
答案 1 :(得分:1)
您必须在订单表中添加customer_id
列。
ActiveRecord不知道要为相关订单获取哪个客户。
尝试rails g migration AddCustomerIdToOrders customer_id:integer
(不要忘记db:migrate)。
答案 2 :(得分:0)
听起来您忘了运行迁移。从控制台和rails项目的根目录中,运行rake db:migrate
以确保rails已为关联和模型生成所有支持表和列。