我甚至不知道从哪里开始解释我的问题,所以请多多包涵:(Rails的协会工作不
我有两个型号,产品和类别 - 产品HAS_ONE类别和类别belongs_to的产品
!产品型号
ID
名
描述
品牌
商人
价格
图像0 链接
类别
分类模型
ID
名
PRODUCT_ID
确定,所以现在我循环通过XML饲料制造产品,像这样:
Product.create(:name => node.xpath("./text/name/text()").inner_text.downcase,
:description => node.xpath("./text/desc/text()").inner_text,
:brand => node.xpath("./brand/text()").inner_text,
:merchant => node.xpath("../@name").inner_text,
:category => Category.find_by_name(node.xpath("./cat/text()").inner_text.downcase),
:price => "£" + node.xpath("./price/btext()").inner_text)
这似乎运行伟大,直到我看到了它在数据库的制作......下面是两个表的输出。
Products表
(删节版,包含10,000条记录)
ID:1
....
....
....
类别:< ----为所有超过10,000条记录清空... err wtf?当然应该是一个类别ID或名称
类别表
(仅包含8个记录,一个用于每个类别)
ID:1
名:袜
PRODUCT_ID:10662 < ---- ERR WTF ?
ID:2
名:组合
的product_id:10658 < ---- ERR跆拳道?
ID:3
名称:鞋
的product_id:9954 < ---- ERR跆拳道?
ID:4
名:睡衣
的product_id:10653 < ---- ERR跆拳道?
ID:5
名称:帽子
的product_id:10655 < ---- ERR跆拳道?
ID:6
名称:短裤
的product_id:10221 < ---- ERR跆拳道?
ID:7
名称:牛仔裤
的product_id:9973 < ---- ERR跆拳道?
ID:8
名称:教员
的product_id:8072 < ---- ERR跆拳道?
说实话,我很困惑,我不知道我想要看到了: -/
我只想两个表连接在一起笑。我在这里错过了一些基本的东西!?
好吧,现在正在工作。但是,现在将所有产品的category_id设置为'1'!?我猜这是这行错了::category_id => Category.find_by_name(node.xpath(“./cat/text()”)。inner_text.downcase) – Zinc 2011-02-07 22:45:37
Ah Ha!我破解了它。该行应该是:category而不是:category_id - >:category => Category.find_by_name(node.xpath(“./cat/text()”)。inner_text.downcase) – Zinc 2011-02-07 23:02:04