【发布时间】:2011-02-07 21:48:14
【问题描述】:
我什至不知道从哪里开始解释我的问题,所以请多多包涵:(!
我有两个模型;产品和类别 - 产品有_一个类别和类别属于_产品
产品型号
身份证
名称
说明
品牌
商户
价格
图片
链接
类别
类别模型
身份证
名称
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)
这似乎运行良好,直到我查看它在数据库中生成的内容...这是两个表的输出。
产品表
(精简版,包含 10,000 多条记录)
id:1
....
....
....
类别:
类别表
(仅包含8条记录,每个类别一条)
id:1
名称:袜子
product_id: 10662
id:2
名称:组合
product_id: 10658
id:3
名称:鞋
product_id: 9954
id:4
名称:睡衣
product_id: 10653
id:5
名称:帽子
product_id: 10655
id:6
名称:短裤
product_id: 10221
id:7
名称:牛仔裤
product_id: 9973
id:8
名称:培训师
product_id: 8072
说实话,我很困惑,我不确定我想再看什么了:-/
我只是想让这两个表链接在一起哈哈。我在这里遗漏了一些基本的东西吗!?
【问题讨论】:
-
好的,现在可以了。但是,它现在将所有产品的 category_id 设置为“1”!?我猜这行有问题: :category_id => Category.find_by_name(node.xpath("./cat/text()").inner_text.downcase)
-
啊哈!我破解了它。该行应该是 :category 而不是 :category_id -> :category => Category.find_by_name(node.xpath("./cat/text()").inner_text.downcase)
标签: ruby-on-rails ruby-on-rails-3