Deux enregistrements avec deux mises en page / vues différentes dans un créent
-
25-10-2019 - |
Question
Ok, voici mon problème: i ai tabel dans un système de rayon. pour permettre à un point d'accès utilisateur i besoin de deux dossiers différents dans ce tableau. le dossier a l'utilisateur des champs, attr, op, valeur premier enregistrement: attribut doit être mot de passe (ce disque est que le mot de passe ici) et la valeur est le mot de passe lui-même. deuxième enregistrement: attribut doit être quelque chose comme Max-allowed-session une valeur est un entier en quelques secondes. J'ajoute donc ce que les attributs imbriqués à mes clients du contrôleur. Dans la nouvelle que je fais que:
def new
@client = Client.new
2.times do
radcheck = @client.radchecks.build
end`
respond to........
end`
Ok, à mon avis j'ai ce au moment:
f.fields for :radchecks do |rcbuilder|
<p><%= rcbuilder.label :username %><br /><%= rcbuilder.text_field :username %>
for all fields .....
end
Dans mon contrôleur i construit deux radchecks, donc cette partie est représentée deux fois. C'est le statut, mais je veux avoir quelque chose comme ça dans mon site
<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 a une idée de réaliser que. Peut-être que je dois écrire moi-même les champs indexés, mais comment puis-je y parvenir? grâce à l'aide ....
La solution
En supposant que vous utilisez accepts_nested_attributes_for: radchecks dans votre modèle client.
<% index=1 %>
f.fields for :radchecks do |rcbuilder|
<%= render :partial=>'radcheck_fields', :locals=>{:rcbuilder=>rcbuilder, :index=>index}%>
<% index+=1 %>
end
Créez ensuite une radcheck_fields.html.erb partielle du nom avec le code suivant.
<% 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 %>