2017-01-23 23 views
0

私はassociadoのリストを持っており、eh_proprietariotrueを返すものだけを選択したいと思います。私はputs "#{e.eh_proprietario}"を追加する場合、私はそれが2つのインスタンスのためにtrueを返し見ることができますこのマップが機能しないのはなぜですか?

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

が、私はこのコレクションを使用しようとすると@possiveis_associadosがnilであるので、私の見解では、私はエラーを取得:これがマッピングです。

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

関連する問題