2017-01-23 4 views
0

У меня есть список associado, и я хочу выбрать только те, где eh_proprietariotrue. Это отображение:Почему эта карта не работает?

@possiveis_associados = associados.map { |e| e if e.eh_proprietario} 

Если добавить puts "#{e.eh_proprietario}" я могу видеть это возвращает истину для двух случаев, но на мой взгляд, когда я пытаюсь использовать эту коллекцию, я получаю сообщение об ошибке, потому что @possiveis_associados равна нулю.

<%= m.select :associado_id , options_from_collection_for_select(@possiveis_associados, :id, :razao_social), {include_blank: false}, {class: 'form-control'}%> 

Что я здесь делаю неправильно?

ответ

2

Вы ищете select, а не map. Попробуйте

@possiveis_associados = associados.select { |e| e.eh_proprietario } 

или, короче

@possiveis_associados = associados.select(&:eh_proprietario) 
+0

Можно выбрать использовать с отрицанием? Как '.select (& :! eh_proprietario)'? – Tuma

+1

Используйте для этого 'reject'. 'Associados.reject (&: eh_proprietario)' – Ursus

Смежные вопросы