【发布时间】:2021-05-18 11:39:41
【问题描述】:
我有两个带有 ActiveAdmin 面板的模型:
class Portfolio < ApplicationRecord
has_many :portfolio_reports
end
class PortfolioReport < ApplicationRecord
belongs_to :portfolio
end
在Portfolio 面板中,我希望有一个按钮,可以为该投资组合创建PortfolioReport(它会将管理员带到具有给定portfolio_id 的新PortfolioReport 视图)。
为此,我有以下代码:
# admin/portfolios.rb
ActiveAdmin.register Portfolio do
action_item :portfolio_report, only: :show do
link_to 'Create Report', new_admin_portfolio_report_path(portfolio_id: portfolio.id)
end
end
# admin/portfolio_reports.rb
ActiveAdmin.register PortfolioReport do
permit_params :portfolio_id
includes :portfolio
form do |f|
f.inputs :published_at
tabs do
tab 'Intro content' do
f.inputs do
input :portfolio, as: :hidden
# other inputs
end
end
end
end
这给了我一个错误:
ActiveRecord::AssociationTypeMismatch in Admin::PortfolioReportsController#create
Portfolio(#523620) expected, got "" which is an instance of String(#4100)
我错过了什么?
【问题讨论】: