如果我手动创建图像并分配产品。它在控制台中运行良好:
p = Spree::Product.first
i = Spree::Image.create!(<create info>)
p.images << i
p.save!
当我尝试在程序中运行它时。它没有做任何事情。它就像p.images << i
从未运行一样运行。
我尝试搜索,但不知道如何搜索&lt;&lt;很好。
更新
如果我加入该计划:
p = Spree::Product.first
i = Spree::Image.create!(<create info>)
i = Spree::Image.find(i.id) #this line
p.images << i
p.save!
这很好用,但我不明白这里发生了什么。
先谢谢了! 贾斯汀
答案 0 :(得分:0)
所以这在ORM中很常见。
集合&lt;&lt;方法将一个或多个对象添加到集合中 将其外键设置为调用模型的主键。
按导轨教程: http://guides.rubyonrails.org/association_basics.html
如果你去那个页面你可以做ctrl + f 并搜索:&lt;&lt;
这将为您提供大量信息。
此外,我还会推荐一个来源。我更喜欢这个ORM上的文档: http://datamapper.org/docs/associations.html
这不是活跃的记录,但它非常相似。对我来说,使用datamapper帮助我更好地掌握了活动记录。
希望有所帮助。