(Rails) elementos de formulário ocultos que não fornecem valores ao controlador
-
21-09-2019 - |
Pergunta
Eu tenho o seguinte formulário:
<% form_for(:tag, :url => {:action => "post_tag", :id => @photoID}) do |form| %>
<%= error_messages_for(:tag) %>
<% if @errors then %>
<%= @errors[0] %>
<% end %>
<p><%= form.select(:user_id, @userHash) %></p>
<p><%= form.hidden_field(:xpos) %></p>
<p><%= form.hidden_field(:ypos) %></p>
<p><%= form.hidden_field(:width) %></p>
<p><%= form.hidden_field(:height) %></p>
<%= submit_tag "Submit Tag" %>
<% end %>
Mas nenhum dos valores é preenchido no controlador. Sei que os valores estão todos cheios na visão, porque posso ver que eles têm os valores corretos no Firebug. No controlador, estou tentando acessá -los como params[:xpos]
para o :xpos hidden_field
. Isso está correto ???
Solução
Fazer logger.debug params.inspect
. Eu tenho uma suspeita de espreitadelas que você verá params[:tag][:xpos]
lá :)
Você passou um nome para formar a tag lá (form_for(:tag, ...) do |form|
), ele envolverá todos os campos construídos como form.field(...)
em um hash identificado pelo nome aprovado ("tag", neste caso).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow