Comment mettre en valeur actuelle en matière de collecte dans simple_form
Voici un bout de code à modifier.html.erb qui ne fonctionne pas. Le but du code est de remplir un formulaire d'édition. Collection est utilisée avec l'option oui et non. Comment puis-je mettre de la collection à la actuelle est "actif" de la valeur avec :option sélectionnée?
<%= simple_form_for @category do |f| %>
<%= f.input :name, :disabled => true, :required => false %>
<%= f.input :description %>
<%= f.input :active, :collection => ['Yes', 'No'], :selected => f.active %>
<%= f.button :submit %>
<% end %>
L'erreur disant que l'actif n'est pas une méthode en fa.entrée :active, :collection.
OriginalL'auteur user938363 | 2011-09-18
Vous devez vous connecter pour publier un commentaire.
En supposant que le
active
attribut pour les catégories est un booléen, essayez:Est le
active
attribut booléen? Il serait plus logique qu'elle soit un booléen, mais si c'est une chaîne, puis essayez:selected => (@category.active == 'Yes' ? 'Yes' : 'No')
Oui, active est un booléen.
Elle fonctionne. Voici le code:<%= f.entrée :active, :collection => [['Oui', 1], ['Aucun', 0]], :selected => (@catégorie.active? ? 1 : 0)
Vous pouvez utiliser une lambda:
selected: lambda { |category| category.id == params[:category_id] }
OriginalL'auteur James