Como você pode ter um campo oculto de forma simples?
O código a seguir:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
resulta neste erro:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
ruby-on-rails
ruby-on-rails-3
form-for
hidden-field
simple-form
Linus Oleander
fonte
fonte
= f.input :title, :as => :hidden, :input_html => { :value => "some value" }
simple_form
maneira de fazer entradas ocultas, no entanto, se apenas uma entrada oculta for necessária, use ohidden_field
construtor de formulários do Rails, pois o Simple Form herda todos os métodos do construtor de formulários.Mais curto ainda !!!
Mais curto, mais seco e talvez mais óbvio.
Obviamente, com o ruby 1.9 e o novo formato de hash, podemos reduzir em 3 caracteres ...
fonte
Também é uma opção. Observe, no entanto, que ignora qualquer wrapper definido para o construtor de formulários.
fonte
A maneira correta (se você não está tentando redefinir o valor da entrada hidden_field) é:
Onde
:method
é o método que, quando chamado no objeto, resulta no valor que você desejaEntão, seguindo o exemplo acima:
O código usado no exemplo redefinirá o valor (: title) de @movie sendo passado pelo formulário. Se você precisar acessar o valor (: title) de um filme, em vez de redefini-lo, faça o seguinte:
Mais uma vez, use apenas minha resposta: você não deseja redefinir o valor enviado pelo usuário.
Espero que isto faça sentido.
fonte
simple_form_for
, ohidden
método que usa aqui vai gerar um erroundefined method
escondido' for # <SimpleForm :: FormBuilder: 0x00007ffa6cde0be8> `