1

我已经开始将旧应用程序转移到新的 Rails 应用程序。首先,我使用 Rails 5.0 创建了它,使用了我在生产中使用的相同数据库。

我的一个联想是:

class Conta < ApplicationRecord
  has_many :conta_cooperados, foreign_key: :id_conta
end  


class ContaCooperado < ApplicationRecord
  belongs_to :conta, foreign_key: :id_conta
end

如果我进行如下查询:

Conta.first.conta_cooperados

我将获得我想要的信息,它会生成以下 SQL:

SELECT `conta_cooperado`.* FROM `conta_cooperado` WHERE `conta_cooperado`.`id_conta` = 1

如您所见,一切运行良好,但由于某些原因,我决定创建一个启用 Rails 5.1 和 API 选项的新应用程序。
现在,当我运行相同的查询时,会生成以下 SQL:

SELECT  `conta_cooperado`.* FROM `conta_cooperado` WHERE `conta_cooperado`.`conta_cooperado` = NULL  

而这个并没有带来预期的结果,因为这'conta_cooperado' . 'conta_cooperado' = NULL部分是错误的。

我不知道发生这种情况是因为我使用的是 Rails 5.1 而不是 5.0,还是因为我使用的是 api 模式。

更新

我刚刚将我的 Rails 5.0 应用程序升级到 5.1 版本,如果在升级之前一切正常,那么我现在遇到了同样的问题。所以,这种情况只发生在 5.1 版本的 Rails 上。这个版本有bug吗?

4

0 回答 0