Rails 2.1 belongs_to主键

时间:2013-10-14 19:48:59

标签: ruby-on-rails ruby ruby-on-rails-2

我有一个基本数据库,其结构如下。

products
------------------
id
serial

order
------------------
id
product_serial

不幸的是,我无法改变数据库的结构。我查看了Rails 2.1的文档,它说我可以建立这样的关系。

belongs_to :product,
           :class_name => 'Product',
           :foreign_key => 'product_serial',
           :primary_key => 'serial'

然而,这给了我这个错误。

Unknown key: primary_key

没有主键就会产生这个SQL

SELECT * FROM `products` WHERE (`products`.`id` = #{serial})

如何在此设置belongs_to关系?

编辑为了记录,我正在使用Rails 2.1。 (我知道,不要告诉我)。

2 个答案:

答案 0 :(得分:1)

如果您检查Rails 2分支的available options for the belongs_to association,您会发现:primary_key不是其中之一。

在您的情况下,只需像上一行中那样简单地声明外键即可。

答案 1 :(得分:0)

您的order模型没有名为serial的字段(以及方法)。您不需要指定它,然后它默认为id(您确实拥有)。