我有这两个模型
class Case < ActiveRecord::Base
belongs_to :client, :class_name => 'User'
end
class User < ActiveRecord::Base
has_one :requested_case, :class_name => 'Case', :foreign_key => :requested_case_id
end
我想使用Active Admin为Case模型创建管理界面,所以当我创建新案例时,我可以同时为它创建新客户端,所以我在app / admin / cases中编写了以下代码行.rb文件
ActiveAdmin.register Case do
form do |f|
f.inputs "Basic Details"
f.input :title
f.input :Description
end
f.inputs :name => "Client Details", :for => :client do |c|
c.input :name
c.input :mobile
end
f.buttons
end
end
所以当我提交客户输入并点击提交时,我收到了此错误
ActiveRecord::AssociationTypeMismatch in Admin::CasesController#create
User(#-625154418) expected, got ActiveSupport::HashWithIndifferentAccess(#82665960)
所以有什么帮助,请问这里缺少什么?
答案 0 :(得分:2)
只需添加到您的app/admin/cases.rb
文件
controller do
def new
@case = Case.new
@case.build_client
end
end
并且不要忘记将accepts_nested_attributes_for
添加到您的case
模型
accepts_nested_attributes_for :client