gpt4 book ai didi

ruby-on-rails-3.2 - 在 Rails 3.2.9 中删除了 ActiveRecord to_i 方法

转载 作者:行者123 更新时间:2023-12-04 07:42:24 24 4
gpt4 key购买 nike

今天从 3.2.7 升级到 Rails 3.2.9,似乎已经从 ActiveRecord 中删除了方法“to_i”。

这是故意的吗?或者这是一个错误?我在更改说明中找不到任何提及。这将影响很多代码。

谢谢!

最佳答案

#to_i方法从未存在过,但是将对象分配给值的方式有 changed in Rails 3.2.8 .

鉴于以下情况:

class Lecture < ActiveRecord::Base
has_one :professor
end

以前,您可以将教授分配给这样的讲座:
@lecture.professor = Professor.find_by_id(1)

或者像这样:
@lecture.professor_id = Professor.find_by_id(1)

在第一种情况下,一切都很简单,如 professor协会期望教授对象。在第二种情况下,虽然 ActiveRecord 执行了一些魔法来强制教授 id,如 professor_id期望一个整数。

在 Rails 3.2.8 及更高版本中,这种魔法不再起作用。这在某种程度上很好,因为它暗示您可能做错了什么。例如,如果没有 professor_id数据库中的列,但只是 professor它需要一个整数,这样的分配将不再有效。

看起来这将是 reverted to the previous behaviour in Rails 3.2.11 .

关于ruby-on-rails-3.2 - 在 Rails 3.2.9 中删除了 ActiveRecord to_i 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com