多相関連を無視したactive_admin/formtastic

私は現在、Ruby on Railsのactive_adminで多相関連のフォームに問題があります。

オフィス、企業、ユーザーという3つのモデルが用意されています。両方の企業とユーザーがオフィスを所有することができます。私のモデルは次のように設定されています:

class Office < ActiveRecord::Base
  belongs_to :ownable, :polymorphic => true
end

class User < ActiveRecord::Base
  has_many :offices, :as => :ownable
end

class Company < ActiveRecord::Base
  has_many :offices, :as => :ownable
end

active_adminではフォームの所有者を編集することはできませんが、インデックスページや表示ページ(会社やユーザーへのリンクを含む)で正しく表示されます。

私はformtasticで手動でフォームを作成しようとしましたが、運が全くありませんでした。 "所有可能な"フィールドは無視され、他のものはすべて適切にレンダリングされます。

明確にするには:active_adminの新しいフィールドと編集フィールドでOfficeモデルの所有者を編集できるようにしたい。

誰も助けを提供することはできますか? :)

2

1 答え

ねえ、これは1ヶ月後のことだとわかっていますが、私が持っていた別のものへの回答を探していたときに私はあなたの質問に出くわしました。

私は私のプロジェクトでActiveAdminと多相関係を扱っています。

私はこれを提案する:

ActiveAdmin.register Office do
  form do |f|
    f.inputs :ownable_type, :ownable_id
    f.buttons
  end

モデルが多形である場合、関係を持つオブジェクトを指すように構成する必要のある2つのフィールドがあります。そのため、この場合、所有者のタイプ(ユーザーまたは会社)のフィールドとオブジェクトのIDが必要です。

これにより、特定のOfficeのフィールドを編集できるようになります。

0
追加された
これは、*型と* idの両方のフィールドを表示しますが、それらはテキストフィールドとして表示されます(通常の関連付けに対して与えられたドロップダウンとは対照的に)。
追加された 著者 BM5k,
また、このようにフィールドを指定すると、フォーム上のすべてのフィールドを表示するために使用されるモデルのイントロスペクションが壊れてしまいます。これは非常に面倒です。
追加された 著者 BM5k,