Ruby on rails 我想隐藏下拉列表中包含的包,而不接触我的模型
我有一个下拉列表,可以选择软件包。但目前,我想暂时隐藏一些软件包,而不涉及我的产品型号 请帮我解决这个问题。谢谢Ruby on rails 我想隐藏下拉列表中包含的包,而不接触我的模型,ruby-on-rails,Ruby On Rails,我有一个下拉列表,可以选择软件包。但目前,我想暂时隐藏一些软件包,而不涉及我的产品型号 请帮我解决这个问题。谢谢 <div class="col-sm-8 col-md-9"> <%= p.select :product_id, options_for_select( Listing::Product::PACKAGES.map { |k,v| [ v[:name], v[:rank] ] }, selected: p.object.product_id),
<div class="col-sm-8 col-md-9">
<%= p.select :product_id, options_for_select( Listing::Product::PACKAGES.map { |k,v| [ v[:name], v[:rank] ] }, selected: p.object.product_id), {include_blank: true}, class: "form-control" %>
<small>
<%= p.label I18n.t('admin.listings.edit.configuration.select_product') %>
</small>
请在包中删除不需要的项目。然后在过滤器之前从编写一个单独的方法调用。在该方法中,根据您的情况将其他项目添加到包中。要临时跳过包集合中的一些元素,可以执行以下操作:
# app/helpers/application_helper.rb
def ignored_package_keys
%i[foo bar baz]
end
def packages_collection
Listing::Product::PACKAGES.dup.
delete_if { |k, _| ignored_package_keys.include? k }.
map { |_, v| [ v[:name], v[:rank] ] }
end
在以下观点中:
<%= p.select :product_id, options_for_select(packages_collection, selected: p.object.product_id), { include_blank: true }, class: 'form-control' %>