To znowu ja
Kod :
f.input :parent_id, :label => "Category", as: :select, collection: Category.all, include_blank: true
Potrzebuję dodać class=“optionParent” i class=“optionChild” do tego select.
Wiem, że istnieje coś takiego jak options_for_select ale nie wiem jak to tutaj dodać, aby działało.
bercik156:
options_for_select
Masz tu przykład, musisz dodać klasę do tablic z kategorami.
options_for_select([ "Denmark", ["USA", {:class => 'bold'}], "Sweden" ], ["USA", "Sweden"])
<option value="Denmark">Denmark</option>\n<option value="USA" class="bold" selected="selected">USA</option>\n<option value="Sweden" selected="selected">Sweden</option>
options_for_select([["Dollar", "$", {:class => "bold"}], ["Kroner", "DKK", {:onclick => "alert('HI');"}]])
<option value="$" class="bold">Dollar</option>\n<option value="DKK" onclick="alert('HI');">Kroner</option>
No ok, tylko nie wiem jak to zrobić w activeadmin.
Dodam jeszcze, że chodzi tutaj o select z ancestry…
To może lepiej napisz co chcesz osiągnąć?
Chcę osiągnąć select z pseudo optgroup czyli:
<select name="category[parent_id]" id="category_parent_id">
<option value="" class="optionParent"></option>
<option value="1" class="optionParent">Komputer</option>
<option value="2" class="optionChild">Karty Graficzne</option>
<option value="3" class="optionParent">Praca</option>
<option value="4" class="optionChild">IT/Telekomunikacja</option></select>
a w css np:
.optionChild {
padding-left: 10px;
}
po to tak, aby za pomocą css zrobić pseudo optgroup, ponieważ rodzica też chce móc zaznaczyć w select.
Select jest wykorzystywany do dodania nowej kategorii/subkategorii
mogę zrobić to oczywiście w ten sposób
f.input :parent_id, :label => "Bla", as: :select, :collection => option_groups_from_collection_for_select(Category.where(:ancestry => nil), :children, :name, :id, :name, :category)
ale niestety tworzy się optgroup który już nie jest do wykorzystania…
jak to ugryźć ?
Nie dasz rady tam włożyć klasy, css dla <option>
nie działa, możesz dodać np. 3 spacje dla podkategorii.
Hmm… A te 3 spacje jak dodać w takim razie?
I w jakim sensie nie działa ? Nie działa, że takie dodawanie czy ogólnie css tak nie działa ?