type text_field_tag tag rails label_tag form_for ruby-on-rails forms

ruby-on-rails - text_field_tag - select rails



cómo establecer el atributo de clase con form_tag en rieles (5)

En Rails 5, puede hacer lo siguiente:

<%= form_tag(your_named_path, {class: ''form-inline''}) do %> <% end %>

Tengo la siguiente línea de haml:

=form_tag :action => ''create'', :controller => ''comments'', :class => ''comment_form'' do

Pero el html que obtiene salida es:

<form accept-charset="UTF-8" action="/comments?class=comment_form" method="post"></form>

Quiero establecer la clase ¿Cómo hago esto?

<- Actualización ->

Con este:

=form_tag ({ :action => ''create'', :controller => ''comments'' }, { :class => ''comment_form'' }) do

Me sale este error:

syntax error, unexpected '','', expecting '')'' ...'', :controller => ''comments'' }, { :class => ''comment_form'' }...

<- Segunda actualización ->

El problema anterior es el espacio entre ''form_tag'' y ''('' la respuesta de @ woahdae es correcta


En caso de que encuentre esta pregunta y realmente quiera resolver el nombre de la clase para un form_for :

<%= form_for @task, html: {:class => "custom_class"} do |f| %>


Esto funciona para mí:

form_tag named_route, :method => :put, :class => ''disable_on_submit''

Con Rails 3.0.15


Puedes hacer lo siguiente:

form_tag your_path, method: :get, id: "your_id", class: "your_class" do end


form_tag toma 2 hashes de opciones, el primero se pasa a url_for , el segundo se pasa al generador de formularios.

Entonces, tienes que hacerlo como:

= form_tag({:action => ''create'',...}, {:class => ''comment_form''}) do

de lo contrario, Rails piensa que todos los pares clave / valor son para url_for, que agregará cualquier clave que no comprenda como parámetros de consulta.