Ruby on Rails form_per selezionare il campo con la classe


200

Sto battendo la testa contro il muro su questo. Voglio creare un semplice tag di selezione usando il f.selecttag, ma nulla di ciò che faccio funziona. Ho messo un esempio di seguito:

<%= f.select(:object_field, ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 4'], :class => 'my_style_class')%>

Ok, quindi in pratica è un semplice elenco che una volta inviato il modulo inserisce il valore in object_field. Funziona tutto, ma la visualizzazione dell'origine della pagina non include il tag di classe. Non genera un errore, lo salta semplicemente insieme.

Se qualcuno ha qualche suggerimento lo apprezzerei molto.

Risposte:


449

Prova in questo modo:

<%= f.select(:object_field, ['Item 1', ...], {}, { :class => 'my_style_class' }) %>

selecthelper accetta due hash di opzioni, uno per selezionare e il secondo per le opzioni html. Quindi tutto ciò di cui hai bisogno è dare opzioni vuote predefinite come primo parametro dopo l'elenco di elementi e quindi aggiungere la tua classe a html_options.

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select


2
Proprio sui soldi, grazie mille, che ha fatto il trucco! Sapevo che doveva essere qualcosa di semplice e ovviamente lo era.
Patrick,

Avevo provato in questo modo in haml ma non so perché nella classe "Ispeziona elemento in firebug con elemento" non si vede qui è il mio codice = f.select (: gender, [['Male', true], ['Female ', false]], {}, {: class => "drop",: style => "opacity: 0;"})
Gagan Gami,

@GaganGami Ho capito che funziona con questo codice: l' = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) opacità impostata su 0 renderà invisibile il tuo campo.
Robert,

Qualcuno sa cosa dovremmo fare se alla fine f.select viene passato un blocco? La classe non sembra andare avanti con nessuna combinazione che ho provato.
Tashows,

Grazie per la spiegazione
Abhilash,

21

È inoltre possibile aggiungere un'opzione di prompt come questa.

<%= f.select(:object_field, ['Item 1', 'Item 2'], {include_blank: "Select something"}, { :class => 'my_style_class' }) %>

12

Questo lavoro per me

<%= f.select :status, [["Single", "single"], ["Married", "married"], ["Engaged", "engaged"], ["In a Relationship", "relationship"]], {}, {class: "form-control"} %>

2

Puoi vedere qui: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

Oppure qui: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

Il tag Select ha un massimo di 4 agrument e l'ultimo agrument è un'opzione html, significa che puoi inserire classe, richiesta, opzione di selezione qui.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}

selected: @setfunziona per me quando l'ho inserito nel primo {}.
user1515295
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.