2011-02-09 21 views
11

Spojrzałem na How do I set the HTML options for collection_select in Rails? i jestem pewien, że brakuje mi czegoś oczywistego, ale nie mogę tego zrobić.dodaj klasę do collection_select

Moja wybrać aktualnie wygląda tak:

<%= f.collection_select :broadcast_id, broadcasts, :id, :to_s, 
    :include_blank => 'Broadcast on...' %> 

i próbowałem tym : class => 'prevent_collapse', który nic nie robi, jak również {: class => 'prevent_collapse'}, co daje mi błąd.

Jeśli ktokolwiek może wskazać, jak to zrobić, będę bardzo wdzięczny!

Odpowiedz

22
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {}) 
=> 
f.collection_select :broadcast_id, broadcasts, :id, :to_s, 
{:include_blank => 'Broadcast on...'}, {:class => 'prevent_collapse'} 

Jakiego błędu masz?

Czy nadawca ma metodę :to_s? Zwróci nazwę klasy, jak myślę.

+2

dziękuję - to rozwiązało! Zapomniałem wstawić: include_blank w {} – tiswas

+0

możesz wyjść tak: "f.collection_select: broadcast_id, broadcasts,: id,: to_s, {}, {: class => 'prevent_collapse'}" Nie ma musisz dodać "include_blank", jeśli go nie potrzebujesz. –

1

Czy to pole :include_blank => {} jest obowiązkowe? Próbowałem z :include_blank => false i zadziałało. Zastanawiam się, czy możemy tego uniknąć?

+0

Tak, możesz to pominąć. Wystarczy zastąpić '{: include_blank => 'Broadcast on ...'}' with '{}'. –