ActiveAdmin 以一种形式更新两个模型

ActiveAdmin update two models in one form

我有一个 ActiveAdmin 页面可以编辑 Loan 信息,例如:

ActiveAdmin.register Loan do
  ...
  form do |f|
  f.inputs 'Loan' do
    f.input :name
    f.input :amount
  end
  f.actions
end

(为清楚起见,我省略了很多字段)

现在,由于性能原因,我将 amount 字段提取到与 Loan

具有一对一关系的 LoanDetails 模型
class Loan < ActiveRecord::Base
  ...
  has_one :details, class_name: 'LoanDetails', foreign_key: :loan_id
  ...
end

class LoanDetails < ActiveRecord::Base
  ...
  belongs_to :loan
  ...
end

此更改会阻止 ActiveAdmin 页面。尝试在

中编辑贷款结果
unknown attribute 'amount' for Loan.

错误。

如何更新我的 ActiveAdmin 以正确使用新数据结构?

在我写 Whosebug 问题的过程中,我的同事帮我解决了这个问题。

ActiveAdmin.register Loan do
  ...
  form do |f|
    f.inputs 'Loan' do
      f.input :name
    end

    f.inputs 'Loan Details', for: [:details, f.object.details] do |d|
      d.input :amount
    end

    f.actions
  end
end