2017-01-23 42 views
0

我有一個associado的列表,我只想選擇其中的eh_proprietario返回true。這是映射:這張地圖爲什麼不起作用?

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

如果我添加一個puts "#{e.eh_proprietario}"我可以看到它的兩個實例返回true,但在我看來,當我嘗試使用此集合,我得到一個錯誤,因爲@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

使用'拒絕'。 'associados.reject(&:eh_proprietario)' – Ursus