2009-11-19 10 views
7

Sto tentando di nascondere una casella di controllo e assegnare un valore predefinito di 1 in modo che il pulsante di invio solo mostra. Ecco la mia forma. Mi chiedo solo il formato corretto come sono nuovo per le rotaie. Penso che tu possa farlo con gli aiutanti, ma mi stavo chiedendo se posso includerlo nel modulo. Qui è la forma:Nascondere la casella di controllo e assegnare valore - Ruby on Rails - Easy Question

<% remote_form_for [@post, Vote.new] do |f| %> 
    <p> 
     <%= f.label :vote %> 
     <%= f.check_box :vote %> 
    </p> 
    <%= f.submit "Vote" %> 
+0

Non capisco la tua domanda. Perché vuoi una casella se non verrà mostrata e sarà sempre 1? –

+0

Quindi, quando l'utente fa clic sul pulsante di invio "Vota", si desidera che l'hash dei parametri abbia {: vote => '1'} al suo interno, ma senza mostrare la casella di controllo. È giusto? O vuoi solo un modo per dire che hanno cliccato sul pulsante Invia? –

+0

Puoi dire che sono nuovo. Sto cercando di consentire loro di votare. Quindi il pulsante di invio dirà "mi piace" e quando cliccano, consegna "1" al tavolo. Poi visualizzo il conteggio sul reso. Ha senso? – bgadoci

risposta

10

si può certamente fare questo, ma se tutto quello che volete è quello di impostare un parametro senza visualizzare un campo, quello che probabilmente si desidera, invece, è un campo nascosto:

<%= f.hidden_field :vote, :value => '1' %> 

Se davvero si vuole una casella di controllo nascosto (forse quindi puoi opzionalmente visualizzarlo in seguito usando javascript?), puoi farlo in questo modo:

<%= f.check_box :vote, :checked => true, :style => 'visibility: hidden' %> 
0

Se si desidera solo per passare il valore lungo, utilizzare un campo nascosto

<% remote_form_for [@post, Vote.new] do |f| %> 
    <%= f.hidden_field_tag 'vote', '1' %> 
    <%= f.submit "Vote" %> 
<% end %> 
1

Si potrebbe utilizzare i CSS per nascondere la casella di controllo:

<%= f.check_box_tag :vote, 1, true, :style => "display: none;" %> 

Ma se vuoi semplicemente passare un valore puoi semplicemente utilizzare un campo nascosto:

<%= f.hidden_field_tag, :vote, 1 %>