просмотр формы для атрибутов Array модели mongomapper - PullRequest
2 голосов
/ 16 сентября 2011

Я пробираюсь по слою представления и документам в рельсах, и мне было интересно, есть ли у кого-нибудь какие-либо советы о том, как лучше всего настроить форму продукта, чтобы пользователи могли выбирать несколько областей_кодов для заполнения массива разрешенных_реа_кодов в модели продукта (значения кода города кэшируются в массиве, а не в идентификаторах)

class AreaCode
     include MongoMapper::Document

      key :area_code_value, String, :required => true, :unique => true
end

class Product
    include MongoMapper::Document
    key :name, String, :required => true
    key :permitted_area_codes, Array
end

Моя довольно безнадежная попытка выглядит сейчас так (ниже). Он не допускает выбора нескольких вариантов, но один выбор кажется приемлемым. Я обнаружил множественное => true и т. Д. В некоторых довольно старых блогах, и они, похоже, не имеют никакого эффекта В идеале я бы хотел, чтобы пользователь мог выбирать, используя ряд флажков. Может быть, просто нет прямых опций конструктора форм для этого?

<%= form_for(@product) do |f| %>
   <%= render "shared/error_messages", :target => @product %>
     <div class="field">
       <%= f.label :name %><br />
       <%= f.text_field :name %>
     </div>
    <div class="field">
      <%= f.label "Available in areas: " %><br />
      <%= f.select :permitted_area_codes,    options_from_collection_for_select(AreaCode.all, :area_code_value, :area_code_value), :multiple => true, :size => AreaCode.count %>
   </div>

    <div class="actions">
       <%= f.submit %>
     </div>
 <% end %>

Я решил проблему множественного выбора, как изложил в комментарии.

...