Ruby on rails 3.1 使用Formtastic将自定义标签指定给复选框

Ruby on rails 3.1 使用Formtastic将自定义标签指定给复选框,ruby-on-rails-3.1,formtastic,Ruby On Rails 3.1,Formtastic,我有几个来自嵌套模型的复选框(:admin为:account\u设置接受嵌套属性)。默认情况下,复选框的标签是从模型的属性生成的。但是我想使用自定义标签,将其作为键值对存储在locales文件夹中 这是代码 = semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :validate => true, :html => { :method => :put }) do

我有几个来自嵌套模型的复选框(
:admin为:account\u设置接受嵌套属性)。默认情况下,复选框的标签是从模型的属性生成的。但是我想使用自定义标签,将其作为键值对存储在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\u html,:member\u label


formtastic支持这个吗?还是我们必须破解它?

输入是一个字段集。您告诉formtastic创建一个字段集和有序列表,其中包含一个列表项和输入,
:receive\u email\u digest
,我认为这是一个布尔值。这里的
:as
实际上没有任何效果,而
:复选框
用于
有许多关联

你想要的是:

= 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..account\u setting.receive\u email\u digest
作为复选框的标签,其中资源名称是资源的下划线名称。查看这些键是如何生成的