多くのプロジェクトがこの中に包まれており、私は何の(大規模な)検索もしていないので、他の誰かが同様のスタックで作業しているかどうかを確認するためにフレアを投げています。Mongoid embeds_many/embedded_in ActiveAdminのFormtasticとの関係...?
Mongoid-enabled fork of ActiveAdminを使用して、Rails 3アプリの管理インターフェースを構築しています。
(これはFormtasticを使用してフォームを構築する)ActiveAdminはこれまで通りに演奏しているようです。しかし、このスタックをMongoidのembeds_many
とembedded_in
の関係で使用しようとすると、私は悩んでしまいました。私は良い市民になり、Mongoで適切なデータモデリング技術を使用しようとしていますが、Formtasticは一緒に遊びたくないようです。
難解かもしれないが、私が得ている特定のエラーを共有します。
良い解決策を見つけられない場合は、私はそれを吸い取って、has_many
とbelongs_to
を使用します。私はMongoDBの主な利点をあきらめていることを知っています。ジョイン/複数のクエリの欠如が問題になるのに十分な大きさですが、私は最初から正しいことをやると思いました!)。それは、f.input :location
ラインと投げに窒息だ
class Location
include Mongoid::Document
embeds_many :events
field :venue_name, type: String
end
class Event
include Mongoid::Document
embedded_in :location
field :event_name, type: String
end
ActiveAdmin.register Event do
form do |f|
f.inputs do
f.input :event_name
f.input :location, :as => :select
end
f.buttons
end
:
ActionView::Template::Error (undefined method `event_id' for #<Event:0x007fa4224a20e0>):
1: insert_tag renderer_for(:new)
私は:as => :check_boxes
に:as => :select
を変更し、実際に正しい場所を表示するには、それを得た(ただし、チェックボックス、選択やラジオではないなど)。しかし、フォームを送信すると、私はその後で迎えています:生の提出を見て
Mongoid::Errors::NoParent (
Problem:
Cannot persist embedded document Event without a parent document.
)
、「event_idの」の代わりに、親文書(場所)のIDとしての私の選択を送信しようとしています。
とにかく - ここで私は丸い穴に四角いペグを合わせようとしていますが、だれかが思考を持っていれば大いに感謝します。