2

私はこの2つのモデルを持っています

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 を使用してケース モデルの管理インターフェイスを作成したいので、新しいケースを作成するときに同時に新しいクライアントを作成できるので、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)

ここに何が欠けているのか助けてください。

4

1 に答える 1

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
于 2012-07-26T21:42:11.597 に答える