我有两个模型Person
和Car
,我无法在{{1}中更改名为car
而非car_id
的外键列的数据库架构表格。
直到现在没关系,因为我在Persons
模型中使用了以下行:
Person
现在,例如,如果我尝试belongs_to :car, class_name: 'Car', foreign_key: 'car'
,则会根据此列中的Person.last.car
返回Car
个对象。
但问题在于Car ID
,因为如果用户尝试编辑Activeadmin
记录,则会假设加载当前Person
并在列表中默认选择它,但它不会吨。
我的表格代码:
Car
如果我选择任何车并点击提交,我也会遇到此错误form do |f|
f.inputs 'Person Details' do
....
....
f.input :car
....
....
end
end
此外,我尝试为列创建别名,但没有运气
Car(#97670400) expected, got String(#19439720)
我正在使用alias_attribute :ca_id, :car
和最新的Rails 5.0.2
。
答案 0 :(得分:1)
汽车(#97670400)预计,得到字符串(#19439720)
正如我所说,直接和简单的答案是将列名更改为car_id
( 推荐 )并在表单中使用它与f.input :car_id
类似,但您坚持尝试为关联提供不同的(但有意义的)名称。像下面的东西
belongs_to :person_car, class_name: 'Car', foreign_key: 'car'
说明:
您应该避免命名冲突。 car
中的f.input :car
(列名称)与car
中的关联名称 belongs_to :car, class_name: 'Car', foreign_key: 'car'
冲突,这就是原因为错误