form_for
parece ignorar qualquer atributo 'extra' como um data-foo
atributo ou class
passado como options
em seu segundo argumento.
= form_for @user, {:url => 'foo', :class => 'x', 'data-bar' => 'baz' } do |f|
# ...
A saída é uma <form>
tag sem x
classe ou data-bar
atributo.
Qual é a solução?
Ou como posso obter uma FormBuilder
instância sem usar form_for
?
ruby-on-rails
ruby-on-rails-3
Alan H.
fonte
fonte
= form_for @user, :html => {'class' => 'x'} do |f|
.class
deve ser um símbolo em vez de uma string.Rails 4.0.3, Ruby 2.1.0p0 -> funcionou para mim =>
fonte
Eu tive o mesmo problema, mas fiquei intrigado porque outro formulário em outro lugar em meu aplicativo estava funcionando bem.
Percebi que acidentalmente adicionei um form_for dentro de outro form_for que, uma vez removido, resolveu o problema.
Em segundo lugar, devo acrescentar que essa sintaxe funciona para mim no Rails 4.2:
Acho que é preferível à sopa de pontuação das outras respostas aqui (que foram talvez baseadas em uma versão mais antiga do Rails).
fonte
Na maioria dos auxiliares, o último argumento é um hash de opções html para o elemento.
Você também pode verificar outras alternativas na documentação ActionsView :: Helpers :: FormHelper
fonte
Tentei o procedimento acima sem sorte, mas encontrei uma solução. Estou usando trilhos 4.1.6.
Isso não funcionou
Isso fez
observe a diferença com a opção html, espero que isso ajude
fonte
= form_for(:user, :url => login_path, html: {:class => 'login_form'}) do |f| %>
Esta era a única maneira que meu código aplicaria a classe, caso contrário, estaria apenas ignorando-a.