Как я могу получить значение строки метки из поля: select в formtastic - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть следующее в частичном приложении Rails 3.2 с использованием formtastic gem

<%= f.semantic_fields_for :bucket do |bucket| %>
                       <%= bucket.inputs do %>
                               <%= bucket.input :bucket_name, :collection => @buckets,
                               :include_blank => false %>
                               <%= bucket.input :sub_directory, :collection =>
@buckets.first.paths,
                               :include_blank => false %>
                       <% end %>
               <% end %>

прямо сейчас в моем контроллере я могу получить: bucket_name и значение == к целому числу, в моем случае у меня есть только один элемент в моей коллекции, но он дает мне значение 2. Я предполагаю, что это значение идентификатора объекта.

важно, чтобы я получил фактическое: строковое значение имени объекта который выбран в коллекции. Я не уверен, как это сделать. так скажем, выбранный предмет имеет метку "мой ярлык", и это третий предмет в коллекции. как бы я взял значение "мой ярлык".

Ответы [ 2 ]

0 голосов
/ 27 марта 2015

: member_value и: member_label устарели начиная с v3 и выше Formtastic.

Самый простой способ - изменить коллекцию, переданную во входные данные. Смотрите пример с страницы formtastic github

 f.input :author,  :as => :select,      :collection => Author.pluck(:first_name, :id)

Здесь first_name - это метка, а id - значение для опций выбора.

0 голосов
/ 20 февраля 2012

По умолчанию выбранные входы будут использовать атрибут id модели в качестве атрибута value тегов <option>, и он связывает различные методы объекта для содержимого тега параметра, такого как to_label, name и to_s.

Вы можете изменить оба параметра :member_value и :member_label соответственно (в предыдущих версиях они назывались :value_method и :label_method.

Подробная информация о каждом параметре приведена в документации для входных данных выбора, которые, я полагаю, вы еще не видели:)

http://rdoc.info/github/justinfrench/formtastic/Formtastic/Inputs/SelectInput

...