4

为了使基础验证工作,我必须将“data-abide”属性添加到表单标签中,如下所示:

<form data-abide>

如何使用 rails 中的 form_for 标签来做到这一点?

完整的导轨代码:

<%= form_for @member, html: {class: "custom"} do |f| %>
4

6 回答 6

1

在 rails form_for 语法中,您可以执行以下操作:

:html => {"data-abide" => ''}

我也将 abide 与表单助手一起使用,这种方式效果很好。

于 2013-09-24T22:02:16.400 回答
1

我在 form_for 助手中使用它,如下例所示:

<%= form_for @user, html: { :"data-abide" => "" } do |f| %>

这将生成以下 html,并且 Abide 将起作用:

<form accept-charset="UTF-8" action="/users" class="new_user" data-abide="" id="new_user" method="post" novalidate="novalidate">
于 2014-03-28T02:42:55.260 回答
0

关于<%= form_tag '', 'data-abide' => '' %>...<% end %><%= tag :form, 'data-abide' => '' do %><% end %>

有理由为此使用rails helpers吗?使用起来不是更容易<form data-abide>吗?

于 2013-08-09T05:54:35.367 回答
0

将此帮助器方法添加到应用程序帮助器中

def tag_options(options, escape = true)
      unless options.blank?
        attrs = []
        options.each_pair do |key, value|
          if key.to_s == 'data' && value.is_a?(Hash)
            value.each do |k, v|
              unless v.is_a?(String) || v.is_a?(Symbol) || v.is_a?(BigDecimal)
                v = v.to_json
              end
              v = ERB::Util.html_escape(v) if escape
              attrs << %(data-#{k.to_s.dasherize}="#{v}")
            end
          elsif !value.nil?
            final_value = value.is_a?(Array) ? value.join(" ") : value
            final_value = ERB::Util.html_escape(final_value) if escape
            attrs << %(#{key}="#{final_value}")
          end
        end
        " #{attrs.sort * ' '}".html_safe unless attrs.empty?
      end
    end

然后使用 <%= form_for(@member, :data => {'abide' => ''}) 做 |f| %>,这将产生 html

<form accept-charset="UTF-8" action="/members" class="new_member" data-abide="" id="new_member" method="post">
于 2013-12-29T16:47:07.433 回答
0

Josh Lehmans 的回答帮助了我。这是表单的完整工作示例。

<%= form_for @customer, html: {"data-abide" => ''} do |f| %>
    <%= f.text_field :name, placeholder: "Your name", :required => '' %>
    <%= content_tag(:small, "This field is required", class: "error") %>
<% end %>
于 2014-01-31T09:32:58.163 回答
-3

尝试使用

<% form_for @your_object, :html => {:data => {:abide => 'your-data-abide'}} do |f|%>
于 2013-08-09T05:35:52.050 回答