development

options_for_select 태그에서 선택 목록의 첫 번째 항목에 공백 포함

big-blog 2020. 12. 7. 20:10
반응형

options_for_select 태그에서 선택 목록의 첫 번째 항목에 공백 포함


시도 :include_blank => true했지만 작동하지 않았습니다.

<select>
    <%= options_for_select Model.all.collect{|mt| [mt.name, mt.id]} %>
</select>

컬렉션에 추가해야한다면 어떻게 하시겠습니까?


이 형식을 원한다고 생각합니다.

select("model_name", "model_id", Model.all.collect {|mt| [ mt.name, mt.id ] }, {:include_blank => 'name of your blank prompt'})

BTW : Modle이 Model이라고 가정했습니다. collection_select를 사용하여 사용하려면 :

collection_select(:model, :model_id, Model.all, :id, :name, :prompt => true)

:include_blank옵션 select은 모델에 연결된 필드 에만 존재 한다고 생각합니다 .

모델에 묶여 <select>있는 대신 일반 태그 를 사용하려는 경우 <%= select(...) %>결과 앞에 빈 항목을 삽입 할 수 있습니다.

<%= options_for_select Modle.all.collect{|mt| [mt.name, mt.id]}.insert(0, "") %>

당신이 선택 태그로 태그 한 이후에는 옵션을 사용할 수 있습니다 include_blank로를 select_tag.

문서에서 :

select_tag "people", options_from_collection_for_select(@people, "id", "name"), :include_blank => true

# => <select id="people" name="people"><option value=""></option><option value="1">David</option></select>

또는 다음을 사용할 수 있습니다 options_for_select.

<%= select_tag column.name, options_for_select(Model.all.collect{|mt| [mt.name, mt.id]}), :include_blank => true %>

<%= options_for_select Model.all.collect{|x| [x.name,x.id]}.unshift(["",nil]) %>

= select_tag "some_value", options_for_select(Model.all.collect{ |x| [x.name, x.id]}.prepend([t('helpers.some_name'), nil]), :selected => params[:some_value])

당신이 매끄러운 솔루션을 원하는 경우에 당신은 나의 보석 사용할 수 있습니다 rearmed_rails거기에 그 안전하게 원숭이 패치 기능이 있습니다 options_for_selectoptions_for_collection_select

rails g rearmed_rails:setup

config/initializers/rearmed_rails.rb다음 값을 열고 변경하십시오.true

options_for_select_include_blank: true,
options_from_collection_for_select_include_blank: true


이제 공백이 필요할 때마다 다음을 수행하십시오.

<%= options_for_select(Model.all.map{|x| [x.name,x.id]}, include_blank: true) %>

참고 URL : https://stackoverflow.com/questions/6710965/include-blank-for-first-item-in-select-list-in-options-for-select-tag

반응형