【问题标题】:Assign custom labels to checkboxes using Formtastic使用 Formtastic 将自定义标签分配给复选框
【发布时间】:2011-11-11 08:00:20
【问题描述】:

我有一些来自嵌套模型 (: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 支持这个吗?还是我们必须破解它?

【问题讨论】:

    标签: ruby-on-rails-3.1 formtastic


    【解决方案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 了解这些密钥是如何生成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 2014-12-30
      • 2012-04-07
      相关资源
      最近更新 更多