2010-12-22 4 views
1

Existe-t-il un moyen rapide de créer un formulaire pour la relation embeds_many-embedded_in? Je donne les résultats suivants:Formtastic avec les relations intégrées de Mongoid

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 

Je veux créer un formulaire pour l'équipe avec l'édition intégrée pour les joueurs. Vu https://github.com/bowsersenior/formtastic_with_mongoid_tutorial mais "TODO" là.

Répondre

5

J'ai écrit le formtastic_with_mongoid_tutorial et malheureusement je n'ai pas encore trouvé un moyen facile de gérer les relations intégrées. Ce que je fais maintenant est de construire les objets incorporés dans le contrôleur, puis de passer les objets dans un bloc. Il ressemblerait un peu comme ceci:

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

Ne pas oublier de mentionner les attributs imbriqués dans 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 

Il est certainement loin d'être idéal. J'aimerais pouvoir vous aider davantage, mais peut-être que cela vous indiquera la bonne direction. Je vais garder un œil sur les meilleures solutions et mettre à jour le tutoriel si/quand j'en trouve.

Questions connexes