2009-12-22 22 views
71

Rails collection_select tarafından oluşturulan bir seçme etiketine sınıf eklemek için sözdizimi bulamıyorum. Biraz yardım?Rails'de collection_select için HTML seçeneklerini nasıl ayarlayabilirim?

+1

size ne yapmak istediğinizi bazı örnek verebilir :

collection_select(:user, :title, UserTitle.all, :id, :name, {}, {:class=>'my-custom-class'}) 

Ek API belgelerine mevcuttur? Sorunu anlamadım. – klew

+0

Tabii ... Ben kullanıyorum raylar <% = f.collection_select ...%> oluşturmak için: Sadece bunu istiyorum: tybro0103

cevap

162

Birçok Rails yardımcıları birden çok karma bağımsız değişken alır. İlk yardımcı kendisi kontrol etmek genellikle seçenekleri, ikincisi

yöntem tanımı aşağıdaki gibidir özel kimlikleri belirttiğiniz html_options vb sınıfları:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {}) 

Sen fark edeceksiniz params listesindeki çoklu '= {}'. Bunu kullanmak için, belirttiğiniz ediyorum ilk seçenek kümesi aslında ayraç içine alınması gerekir: html sınıfına yanında belirtmek için herhangi bir seçenek yoksa

collection_select(:user, :title, UserTitle.all, :id, :name, {:prompt=>true}, {:class=>'my-custom-class'}) 

, o zaman sadece boş bir karma yer tutucu koymak: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select

+0

Ah, belgeleri biraz daha okumalıydım :) – tybro0103

+0

Drew, güzel cevap. Collection_select ile ilgili tüm şüphelerimi temizliyorum. –

+0

İşte bu yanıtın .css stilini nasıl değiştirileceğini ve jQuery onchange olaylarını nasıl kullanacağınızı gösteren bir uzantıdır: <% = collection_select (: question,: text, Question.all,: id,: text, {: prompt => 'Select Question. .. '}, {: class =>' input ',: name =>' normalSelect ',: id =>' normalSelect ',: style =>' width:% 50 ',: onchange => "$ (' # akordeon ') akordeon (' aktive ', 2); $ (' # kör '). show (' kör ', 500)'})%> ' – wantrapreneur

8
= f.collection_select :category_id, Category.order(:name), :id, :name, {}, {class: "store-select"} 
İlgili konular