Назначьте пользовательские метки для флажков, используя Formtastic - PullRequest
2 голосов
/ 11 ноября 2011

У меня есть несколько флажков для вложенной модели (:admin accepts_nested_attributes_for :account_setting). По умолчанию метка для флажка генерируется из атрибутов модели. Но я хочу использовать пользовательские метки, которые я храню в папке locales в качестве пар ключ-значение.

Это код,


= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :validate => true, :html => { :method => :put }) do |f|
  = f.input :email
  = f.inputs :receive_email_digest, :as =>:check_boxes, :for => :account_setting, :label => 'My custom label'

И это не работает. Я пытался :input_html, :member_label.

Поддерживает ли formtastic это? Или мы должны взломать это?

1 Ответ

1 голос
/ 02 января 2012

inputs - это набор полей.Вы говорите formtastic сделать набор полей и упорядоченный список с одним элементом списка и вводом :receive_email_digest, который, как я полагаю, является логическим.:as здесь на самом деле не имеет никакого эффекта, а :check_boxes - для has_many ассоциаций.

Вы хотите что-то вроде:

= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :validate => true, :html => { :method => :put }) do |f|
  = f.inputs do
    = f.input :email
  = f.inputs :for => :account_setting do
    = f.input :receive_email_digest, :label => 'My custom label'

, который будет отображать два набора полей каждый содин вход.Или, может быть, даже:

= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :validate => true, :html => { :method => :put }) do |f|
  = f.inputs "Email Settings" do
    = f.input :email
    = f.semantic_fields_for :account_setting do |ff|
      = ff.input :receive_email_digest, :label => 'My custom label'

Здесь семантические поля являются просто областью действия и не должны выводить никакой разметки.

Я полагаю, что оба из них будут использовать en.formtastic.labels.<resource_name>.account_setting.receive_email_digest для флажковметка, где имя ресурса - это то, что подчеркивает имя вашего ресурса.Проверьте формулярный источник о том, как генерируются эти ключи.

...