Ruby on rails Rails:assign_属性失败,因为属性名称重复

Ruby on rails Rails:assign_属性失败,因为属性名称重复,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个与数据库表orders相关的Order模型,该数据库表有一列pay\u type:integer,但后来添加了一个pay\u types表,并对Order模型进行了如下修改: class Order < ApplicationRecord belongs_to :pay_type ... end order.assign_attributes(pay_type: 2) belongs_to pay_type_something, class_name: :PayType

我有一个与数据库表orders相关的Order模型,该数据库表有一列pay\u type:integer,但后来添加了一个pay\u types表,并对Order模型进行了如下修改:

class Order < ApplicationRecord
  belongs_to :pay_type
  ...
end
order.assign_attributes(pay_type: 2)
belongs_to pay_type_something, class_name: :PayType
但是当我尝试使用assign\u attributes方法为后者赋值时,如下所示:

class Order < ApplicationRecord
  belongs_to :pay_type
  ...
end
order.assign_attributes(pay_type: 2)
belongs_to pay_type_something, class_name: :PayType
我得到以下错误:

ActiveRecord::AssociationTypeMismatch (PayType(#14340) expected, got 2 which is an instance of Integer(#5000))
我知道我可以在订单模型上更改支付类型属性的名称,如下所示:

class Order < ApplicationRecord
  belongs_to :pay_type
  ...
end
order.assign_attributes(pay_type: 2)
belongs_to pay_type_something, class_name: :PayType
重复会消失,但我只想知道:有没有办法在不更改任何名称的情况下为我的第一个pay_type属性赋值?

您可以尝试或

但是这些方法受到保护,这限制了它们的用例。正如您已经注意到的,最好是重命名属性或关联。

您可以尝试或

但是这些方法受到保护,这限制了它们的用例。正如您已经注意到的,最好是重命名属性或关联