使用Formtastic为复选框指定自定义标签

时间:2011-11-11 08:00:20

标签: ruby-on-rails-3.1 formtastic

我有几个来自嵌套模型(: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 个答案:

答案 0 :(得分:1)

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作为复选框的标签,其中资源名称是资源的下划线名称。查看the formtastic source了解如何生成这些密钥。

相关问题