How to add empty attribute to rails form_for tag?

To do a substantiation test, I have to add the "data-abide" attribute to create the tag as follows:

<form data-abide> 

How to do this using the form_for tag in rails?

Full rail code:

 <%= form_for @member, html: {class: "custom"} do |f| %> 
+4
source share
6 answers

Try using

 <% form_for @your_object, :html => {:data => {:abide => 'your-data-abide'}} do |f|%> 
-2
source

In the rails form_for syntax, you can do the following:

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

I use abide also with form helpers, and it works fine this way.

+1
source

I use it in my form for helpers, for example, in the following example:

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

This will create the following html and Abide will work:

 <form accept-charset="UTF-8" action="/users" class="new_user" data-abide="" id="new_user" method="post" novalidate="novalidate"> 
+1
source

What about <%= form_tag '', 'data-abide' => '' %>...<% end %> or <%= tag :form, 'data-abide' => '' do %><% end %>

Is there any reason to use rails for this? Would it be easier to just use <form data-abide> ?

0
source

Add this helper method to the application helper

 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 

then use <% = form_for (@member ,: data => {'comply' => ''}) do | F | %> which will generate html

 <form accept-charset="UTF-8" action="/members" class="new_member" data-abide="" id="new_member" method="post"> 
0
source

Josh Lehmans answer helped me. Here is a complete working example of the form.

 <%= 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 %> 
0
source

Source: https://habr.com/ru/post/1496084/


All Articles