Ruby on rails Rails:assign_属性失败,因为属性名称重复
我有一个与数据库表orders相关的Order模型,该数据库表有一列pay\u type:integer,但后来添加了一个pay\u types表,并对Order模型进行了如下修改: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
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属性赋值?您可以尝试或
但是这些方法受到保护,这限制了它们的用例。正如您已经注意到的,最好是重命名属性或关联。您可以尝试或
但是这些方法受到保护,这限制了它们的用例。正如您已经注意到的,最好是重命名属性或关联