让simple_form尊重我的空白/空标签

时间:2014-02-12 05:26:48

标签: ruby-on-rails ruby-on-rails-3 twitter-bootstrap simple-form

在Rails 3.2.13应用程序中使用simple_form v2.1.0。我有一个simple_form,我想要一个带有内联标签的复选框,我希望有一个“空”的普通标签。这样,标签的容器应保留在原位,并且复选框将与其他表单元素正确定位。

如果我设置:label => "":label => " ":label => nil或根本不提供:label,我最终会将字段名称作为标签。

如果我设置:label => false,则标签和包含元素根本不会呈现(因此复选框显示在页面的最左侧)。

如果我设置:label => " ",我会按预期结束文字 

似乎没有办法告诉简单的表格将标签留在那里,只是不要在其容器中放置任何文字。

这是一个示例表单,我正在尝试为带有内联标签的复选框设置空标签。

<%= simple_form_for @model ... %>
    <%= f.input :sticky, :label => "", :inline_label => "Sticky?", :as => :boolean ... %>
<% end %>

但是simple_form认为它比我聪明并默认标签。如果我没有特别提供标签,我希望它能做到这一点!

Simple form doesn't allow blank labels!

3 个答案:

答案 0 :(得分:0)

您是否尝试完全删除输入中的:label属性,而是使用form.label作为空标签。

http://apidock.com/rails/ActionView/Helpers/FormHelper/label

您可以使用CSS定位复选框,而不是使用空标签。

答案 1 :(得分:0)

尝试将:label值设为false

UPDATE:由于SimpleForm应该依赖ActionView来呈现元素,因此您可以使用这种hackish解决方案:将locale文件中的标签设置为空字符串,就像这样

en:
  activerecord:
    attributes:
      model_name_underscored:
        sticky: ' '

答案 2 :(得分:0)

遇到类似的麻烦。在您的表单默认情况下,只需执行以下操作:

defaults: { :label => 'blanklabel', label_html: { class: 'blanklabel'}

然后在CSS中,只需将标签文本颜色设置为白色:

.blanklabel { color: white; }