Я пытаюсь сделать выбор со всеми странами мира с количеством пользователей внутри() в правой части имени. Это как мое выпадающее меню должно выглядеть следующим образом:Как добавить условие внутри @ object.map внутри f.select в ruby
--Все-- (15)
Испания (2)
Соединенные Штаты Америки (10)
Словакия (3)
До сих пор у меня есть все страны и пользователи, перечисленные в этом списке, выбираются для всех стран, но проблема связана с опцией -ALL--. Значение опции «AllAll» равно «». Он должен учитывать всех пользователей в мире, но подсчитывает всех пользователей, у которых нет страны, со значением «» в базе данных.
Это код, как я показать все страны для каждого значения избранных:
<%= f.label :country, "Country" %>
<% if @country_sel %>
<%= f.select :country_sel, @country.map{ |p| [p.country_name + ' ('+ User.where("cc_iso LIKE ?", p.cc_iso).count().to_s + ')', p.cc_iso] }, :selected => @country_sel %>
<% else %>
<%= f.select :country_sel, @country.map{ |p| [p.country_name + ' ('+ User.where("cc_iso LIKE ?", p.cc_iso).count().to_s + ')', p.cc_iso] } %>
<% end %>
это код, который я пытаюсь написать для того, чтобы все страны в мире в списке в правой части опции -ALL--.
<% if @country_sel %>
<%= f.select :country_sel, @country.map{ |p| [p.country_name + ' ('+ User.where("cc_iso LIKE ?", p.cc_iso).count().to_s + ')', p.cc_iso] }, :selected => @country_sel %>
<% else %><%= f.select :country_sel, @country.map{ |p| [p.country_name + ' ('+ %>
<% if p.country_name == "" %><%= User.all.count().to_s + ')', p.cc_iso] } %><%else %><%= User.where("cc_iso LIKE ?", p.cc_iso).count().to_s + ')', p.cc_iso] } %>
<%end%>
<% end %>
Но это не работает, я не знаю, как писать, если условия внутри карты внутри f.select
. Я не знаю, если я иду по правильному пути :)
Можете ли вы мне помочь?
Большое спасибо
если '@ country' является объектом, вы не можете назвать' @ country.users.count'? –
Привет, Мохаммад, конечно, я тоже могу это сделать. Проблема в том, где я могу положить ее внутри карты? Требуется только для опции ALL. – user3777245
Настройте свою ассоциацию правильно, как @MohammadAbuShady сказал и не пишете все внутри вашего выбора. Создайте вспомогательный метод, напишите код внутри него и вызовите этот вспомогательный метод в своем выборе – Mandeep