Я хочу скрыть пакеты, включенные в выпадающий список, не касаясь моей модели - PullRequest
0 голосов
/ 29 июня 2018

У меня есть выпадающий список, в котором нужно выбрать пакеты. Но в настоящее время я хочу скрыть некоторые пакеты, не касаясь моей модели продукта.

Пожалуйста, помогите мне решить эту проблему. Спасибо!

<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>

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Чтобы временно пропустить несколько элементов из коллекции пакетов, вы можете сделать это:

# 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' %>
0 голосов
/ 29 июня 2018

В константе PACKAGES любезно удалите ненужные элементы. Затем напишите отдельный вызов метода из before_filter. Внутри этого метода добавьте ваши дополнительные предметы в ПАКЕТЫ в зависимости от ваших условий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...