Due record con due diversi layout / viste in uno creano
-
25-10-2019 - |
Domanda
Ok, qui il mio problema: ho un tabel in una radio-sistema. per consentire un hotspot-utente ho bisogno di due record diversi in questa tabella. il record ha la campi utente, attr, op, il valore primo disco: l'attributo deve essere password (questo disco è solo la password qui) e valore è la password stessa. secondo record: attributo deve essere qualcosa come Max-ammessi-Session un valore è un numero intero in pochi secondi. Quindi aggiungo questo come attributi nidificati ai miei clienti controller. Nel nuovo faccio che:
def new
@client = Client.new
2.times do
radcheck = @client.radchecks.build
end`
respond to........
end`
Ok, a mio avviso ho questo al momento:
f.fields for :radchecks do |rcbuilder|
<p><%= rcbuilder.label :username %><br /><%= rcbuilder.text_field :username %>
for all fields .....
end
Nel mio controller ho costruito due radchecks, quindi questa parte viene mostrata due volte. Questo è stato, ma voglio avere qualcosa come questo nel mio sito web
<first occurence of that form>
<%= rcbuilder.hidden_field :attr, :value => "password" %>
<%= rcbuilder.hidden_field :value, :value => @generated_password %>
<end first occurence>
<second occurence of that form>
<%= rcbuilder.hidden_field :attr, :value => "Max-Allowed-Session" %>
<%= rcbuilder.label :value, 'Time in hours' %><%= rcbuilder.text_field :value %>
<end second occurence>
Somone ha un'idea per rendersi conto che. Forse devo scrivere i campi indicizzati me stesso, ma come posso raggiungere questo obiettivo? Grazie per l'aiuto ....
Soluzione
Supponendo che si sta utilizzando accepts_nested_attributes_for: radchecks nel modello client.
<% index=1 %>
f.fields for :radchecks do |rcbuilder|
<%= render :partial=>'radcheck_fields', :locals=>{:rcbuilder=>rcbuilder, :index=>index}%>
<% index+=1 %>
end
Avanti creare un radcheck_fields.html.erb nome parziale, con il seguente codice.
<% if index.eql?(1) %>
<%= rcbuilder.hidden_field :attr, :value => "password" %>
<%= rcbuilder.hidden_field :value, :value => @generated_password %>
<% else %>
<%= rcbuilder.hidden_field :attr, :value => "Max-Allowed-Session" %>
<%= rcbuilder.label :value, 'Time in hours' %><%= rcbuilder.text_field :value %>
<% end %>