Es gibt eine Möglichkeit, eine collection_check_boxes von einer Konstanten zu serialisieren? Etwas wie folgt aus:Rails4: collection_check_boxes vom Array
# 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 %>
Oder einfach:
<%= f.collection_check_boxes :option, Tutorial::TYPES, :id, :name %>
Wenn ich beide es versuchen, erhalte ich die Fehlermeldung:
undefined method `id' for "Option\t1":String
sind meine Erlaubnis Parameter bereits eingestellt mit option: []
Hat jemand so etwas schon mal gemacht?
Danke!
Aber mit 'Tutorial.all' mache ich eine Abfrage vom Modell. Genau das möchte ich nicht machen. Was ich brauche ist, es aus dem Array aufzurufen, so wie wir es tun, wenn wir den Helper 'select' benutzen: <% = f.select (: lang, options_for_select (Benutzer :: LANGS, @ user.lang), {}, {}) %> –
@FernandoAureliano Okay, dann sollten zwei letzte Elemente nicht ': id' und': name' sein, da dies Methoden sind, die Sie für jedes Element der Auflistung aufrufen, also versuchen Sie '' id' und ': Name' auf '" Option 1 ": String'. Sie können 'TYPES' in Hashwerte umwandeln, in denen Schlüssel oder Werte Indizes sind, und sie so verwenden:' <% = f.collection_check_boxes: option, Tutorial :: TYPES,: key,: value%> '. –
Erhalte den gleichen Fehler 'undefinierter Methodenschlüssel 'für [1,' mit einem Array wie: '[[1," Option 1 "], [2," Option 2 "], [3," Option 3 "]] –