Formtastic с монгоидными вложенными отношениями - PullRequest
1 голос
/ 22 декабря 2010

Есть ли какой-нибудь быстрый способ создать форму для отношения 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 но там "ТОДО".

1 Ответ

5 голосов
/ 23 декабря 2010

Я написал форму 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

Это определенно далеко от идеала.Хотелось бы мне помочь, но, возможно, это укажет вам правильное направление.Я буду следить за лучшими решениями и буду обновлять учебник, если / когда найду их.

...