1

embeds_many-embedded_in 関係のフォームを作成する簡単な方法はありますか? 私は次のものを持っています:

class Team
  include Mongoid::Document
  field :name, :type => String
  embeds_many :players
end

class Player
  include Mongoid::Document
  embedded_in :team, :inverse_of => :players
  field :name, :type => String
end

プレーヤー用の編集が組み込まれたチーム用のフォームを作成したいと考えています。https://github.com/bowsersenior/formtastic_with_mongoid_tutorialが表示されますが、「TODO」があります。

4

1 に答える 1

5

私はformtastic_with_mongoid_tutorialを作成しましたが、残念ながら、埋め込まれた関係を処理する簡単な方法をまだ理解していません。私が今していることは、コントローラーに埋め込まれたオブジェクトを構築してから、オブジェクトをブロックに渡すことです。次のようになります。

= semantic_form_for @team do |form|
  = @team.players.each do |player|
    = form.inputs :for => [:players, player] do |player_form|
      = player_form.input :name

でネストされた属性を処理することを忘れないでくださいTeam

class Team
  include Mongoid::Document
  accepts_nested_attributes_for :players, 
    :allow_destroy => true, 
    # formtastic sends blank attributes to Mongoid models if you use checkboxes
    :reject_if => proc { |attributes| 
      attributes['name'].blank? && attributes['_destroy'].blank? 
    }
   # ...
end

それは間違いなく理想からは程遠いです。私がもっと助けてくれることを願っていますが、おそらくこれはあなたを正しい方向に向けるでしょう。より良い解決策に目を光らせ、もしあればチュートリアルを更新します。

于 2010-12-23T07:49:14.177 に答える