У меня есть массив строк, называемый @theModels, в подпрограмме, реализованной как часть сервера Синатра. Эти модели являются опциями, которые пользователь может выбрать, и их получает серверная часть (идея заключается в том, что при добавлении новых моделей код интерфейса не должен изменяться).
Я использую haml для рендеринга html.
Как я могу перечислить каждый элемент в списке @theModels так, чтобы каждый элемент был флажком? И как я могу узнать, какие флажки выбрал пользователь?
Я вижу, что просто положить
= @theModels
даст мне список строк, содержащихся в @theModels, но без пробелов и т. П. И, конечно, не в флажках. Я нашел этот вопрос , который кажется похожим, но мой хам-фу недостаточно хорош, чтобы преобразовать его в то, что мне нужно.
UPDATE:
Это параметры, связанные с загрузкой файла, так что теперь код выглядит так:
%form{:action=>"/Upload",:method=>"post",:enctype=>"multipart/form-data"}
- @theModelHash.each do |key,value|
%br
%input{:type=>"checkbox", :name=>"#{key}", :value=>1, :checked=>value}
=key
%input{:type=>"file",:name=>"file"}
%input{:type=>"submit",:value=>"Upload"}
Проблема в том, что кнопка загрузки файла помещается в каждую опцию, а не в конец. Я хочу только одну кнопку отправки в конце; у меня должны быть две формы, которые обе сообщают о своих результатах, когда нажата кнопка «Загрузить»?
UPDATE2:
После минутного размышления вышеприведенное можно изменить на:
Спасибо!
%form{:action=>"/Upload",:method=>"post",:enctype=>"multipart/form-data"}
- @theModelHash.each do |key,value|
%br
%input{:type=>"checkbox", :name=>"#{key}", :value=>1, :checked=>value}
=key
%form{:action=>"/Upload",:method=>"post",:enctype=>"multipart/form-data"}
%input{:type=>"file",:name=>"file"}
%input{:type=>"submit",:value=>"Upload"}
И это похоже на то, что я хочу.