В Rails как я могу реализовать меню выбора HTML, используя массив строк?
у меня есть FinancialDocument#document_type
атрибут модели. Я хотел бы позволить пользователю выбрать тип документа из меню выбора HTML, заполненного массивом строк...
doctypes = [ 'Invoice', 'Packing slip', 'Other' ]
для каждого параметра отображаемая метка и возвращаемое значение будут идентичны.
Я посмотрел на select
и collection_select
помощники, но они, похоже, ориентированы на выбор дочерней модели, а не только строкового значения. Я не мог понять, как заставить их подчиниться моей цели.
вот как я пытаюсь сделайте это (я использую Haml, а не Erb)...
form_for(@financial_document) do |f|
- doctypes = [ 'Invoice', 'PS', 'Packing slip', 'Other' ]
= f.collection_select @financial_document, :document_type,
doctypes, :to_s, :to_s, :include_blank => true
Я получаю эту ошибку...
undefined method `merge' for :to_s:Symbol
есть ли другой помощник, который я мог бы использовать для этого? Или способ использования select
или collection_select
?
2 ответов
является ли doctypes коллекцией ActiveRecord? Глядя на код, кажется, что это не так.
Вы можете использовать select
помощником.
= f.select :document_type, doctypes, :include_blank => true
кроме того, вам не нужно пройти @financial_document
Если вы вызываете тег для объекта формы, созданного с помощью form_for.