With the following Store and Service models, managed with MongoMapper:
key :service_ids, Array, :typecast => 'ObjectId'
many :services, :in => :service_ids
key :name, String
many :stores, :foreign_key => :service_ids
I have this form, done with Formtastic:
<%= semantic_form_for @store, :url => admin_store_path(@store), :method => :put do |form| %>
<%= form.input :service_ids, :label => "Select Store Services",
:as => :check_boxes,
:collection => Service.all %>
<% end -%>
The controller uses Inherited Resources, and the edit action is implicit.
When editing a @store with services already associated with it, the checkboxes for the latter don't show as checked.
Formtastic's README warns it doesn't support MongoMapper officially, but it also says people have been using both together successfully, and I've seen some examples of this online.
I suspect Inherited Resources also doesn't support it, from what I've seen from Devise + Simple Form, both from the same authors and which don't support MM. They're working towards using an ORM adapter in their gems, but it isn't ready yet AFAIK.
And I've had problems with it already, I'm overriding the update action to get it to work:
store = Store.find(params[:id])
flash[:notice] = 'Store was successfully updated.'
Does anybody know where the conflict with MM is, either in Formtastic or IR, and a hack just to get these checkboxes checking?