提问人:hannahSugahp 提问时间:8/7/2023 更新时间:8/7/2023 访问量:31
“options_for_select”和“options_from_collection_for_select”的自定义下拉标签
Custom dropdown label for 'options_for_select' & 'options_from_collection_for_select'
问:
我有一个 rails 应用程序,其中几乎没有下拉列表,如下所示
<div class="col-12 col-md-12 col-lg-3 my-3 px-0 px-lg-2 my-lg-auto">
<%= f.select :course_ids, options_from_collection_for_select(Course.courses_shown_on_tp_filters.order(name: :asc), "id", "name", params[:course_ids]), {prompt: "Select courses"}, { :class => 'pr-filter-input form-control selectpicker', data: { live_search: 'true' }, multiple: 'true', id: 'courses-filter' } %>
</div>
<div class="col-12 col-md-12 col-lg-3 my-3 px-0 px-lg-2 my-lg-auto">
<%= f.select :industry, options_for_select(Industry.all.order(name: :asc).map(&:name), selected: params[:industry] || nil), {prompt: "Select Industry"}, { :class => 'pr-filter-input form-control selectpicker', data: { live_search: 'true' }, id: 'industry-filter' } %>
</div>
和
<div class="col-12 col-md-12 col-lg-3 my-3 px-3 px-lg-2 my-lg-auto">
<%= f.select :experience, options_for_select(['0-5', '6-10', '11-15', '16-20', '20+'], selected: params[:experience] || nil), {prompt: "Select experience"}, { class: "form-control selectpicker with-border pr-filter-input", data: { live_search: 'true' }, id: "experience-filter" } %>
</div>
<div class="col-12 col-md-12 col-lg-3 my-3 px-0 px-lg-2 my-lg-auto">
<% skills = TrainerProfile.all.map{|tp| tp.skillset.skills if tp.skillset.present?}.flatten.compact.uniq.reject { |sk| sk.empty? } %>
<%= f.select :skills, options_for_select(skills, selected: params[:skills] || []), {prompt: "Select skills"}, { :class => 'form-control selectpicker pr-filter-input', data: { live_search: 'true' }, multiple: 'true', id: "skills-filter" } %>
</div>
上面显示了 4 个下拉列表。对于行业的下拉列表(第二个),在从下拉列表中选择任何行业之前,我在下拉列表中呈现一个标签,上面写着“选择行业”。与体验下拉列表(第 3 个)相同,在选择任何内容之前,下拉列表中显示“选择体验”。
但是,对于其他 2 个下拉列表(课程和技能),标签未显示,因为设置为 。如果删除此条件,则提示消息将显示为下拉标签。
我希望既能从下拉列表中选择多个选项,又能像行业和经验一样显示“选择课程”或“选择技能”,而不是阅读“未选择任何内容”。multiple
true
详情请参考以下图片。
P.S. 所有下拉列表都有第一个下拉列表选项作为提示消息(包括多个:“true”选项。
答: 暂无答案
评论