рубин на рельсах: включить пробел, если их больше одного - PullRequest
0 голосов
/ 19 ноября 2018

В форму я хочу включить пробел только в случае Client.count>1.Есть ли чистый способ сделать это?

Теперь я использую этот выбор:

= f.select :client_id, Client.all.map{|c| [c.full_name, c.id]}, {include_blank: true}

1 Ответ

0 голосов
/ 19 ноября 2018

Вы можете использовать крошечный декоратор:

class ClientDecorator
  def self.form_select_choices
    Client.pluck(:full_name, :id)
  end

  def self.form_select_include_blank?
    { include_blank: Client.count.positive? }
  end
end

Итак, по вашему мнению, вы вызываете эти методы класса:

<%= form.select :client_id, ClientDecorator.form_select_choices, ClientDecorator.form_select_include_blank? %>

Теперь вы можете проверить это и оставить взаимодействие с базой данных далеко от представлений.

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