Il existe un moyen de sérialiser un collection_check_boxes à partir d'une constante? Quelque chose comme ceci:Rails4: collection_check_boxes du tableau
# model
class tutorial < ActiveRecord::Base
serialize :option
TYPES = ["Option 1", "Option 2", "Option 3"]
end
# view
<%= form_for(@tutorial) do |b| %>
<%= f.collection_check_boxes(:option, Tutorial::TYPES, :id, :name) do |b| %>
<%= b.label class:"label-checkbox" do%>
<%=b.check_box + b.text%>
<%end%>
<% end %>
<% end %>
Ou tout simplement:
<%= f.collection_check_boxes :option, Tutorial::TYPES, :id, :name %>
Quand j'essaie à la fois j'obtenir l'erreur:
undefined method `id' for "Option\t1":String
Mes paramètres de permis sont déjà définis avec option: []
Quelqu'un a déjà fait quelque chose comme ça?
Merci!
Mais en utilisant 'Tutorial.all', je fais une requête à partir du modèle. C'est exactement ce que je ne veux pas faire. Ce dont j'ai besoin, c'est l'appeler à partir du tableau, comme nous le faisons lorsque nous utilisons l'assistant 'select': <% = f.select (: lang, options_for_select (User :: LANGS, @ user.lang), {}, {}) %> –
@FernandoAureliano ok, alors deux derniers éléments ne devraient pas être ': id' et': name' car ce sont des méthodes que vous appelez sur chaque élément de la collection, donc vous essayez d'appeler ': id' et': name' sur '" Option 1 ": String'. Vous pouvez changer 'TYPES' en hachage où les clés ou les valeurs sont des indices, et l'utiliser comme ça:' <% = f.collection_check_boxes: option, Tutorial :: TYPES,: clé,: valeur%> '. –
Vous avez la même erreur 'clé de méthode non définie 'pour [1,' en utilisant un tableau comme: '[[1," option 1 "], [2," option 2 "], [3," option 3 "]]' –