如何构建向标签添加跨度的表单构建器?

时间:2014-12-16 14:47:05

标签: ruby-on-rails ruby

在我的Rails 4应用程序中,我有很多这样的表单标签:

<%= f.label :name, "<span class=\"optional\">optional</span>".html_safe %>

如何使用表单构建器简化此操作,以便我可以简单地说:

<%= f.label_with_optional :name %>

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以在下面执行此操作

class LabellingFormBuilder < ActionView::Helpers::FormBuilder
  def label_with_optional(attribute, options={})
    label(attribute, "<span class=\"optional\">optional</span>".html_safe)
  end
end

请参阅此处http://guides.rubyonrails.org/form_helpers.html#customizing-form-builders

答案 1 :(得分:1)

label的语法是:

label(method, text = nil, options = {}, &block)

所以你可以这样做:

<%= f.label :name do %>
  <span class="optional">optional</span>
<% end %>

如果您想简化它,请使用simple_form,您可以执行以下操作:

  <%= f.label :username %>

如果您在模型中将验证添加到用户名,simple_form将在字段附近添加*以根据需要对其进行标记。