Как получить значения массива в строковом формате - PullRequest
0 голосов
/ 20 сентября 2018

Я получаю значения из нескольких флажков

<%for med_for in ['Self','Father', 'Mother', 'Spouse', 'Child_1', 'Child_2']%>
    <label style="display: inline-block;margin: 6px;"> <%=f.check_box :mediclaim_for,{ multiple: true }, :value=>med_for %>
    <%= med_for %> </label>
<%end%>

У меня есть массив вроде:

[
  "0", "{:value=>\"Self\"}",
  "0", "{:value=>\"Father\"}", 
  "0", "{:value=>\"Mother\"}",
  "0", "{:value=>\"Spouse\"}",
  "0", "0"
]

В контроллере

  cand_dtl=params[:my_detail]
  medi_for_array = cand_dtl[:mediclaim_for].inspect //getting above array 
  abort medi_for_array.map{|s| s[/\{:value=>\"(.*)\"\}/, 1]}.compact

Как получить толькозначения как:

"Self", "Father", "Mother", "Spouse"

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018
arr.reject { |s| s == '0' }.map { |r| eval(r)[:value] }
0 голосов
/ 20 сентября 2018
a =    [
  "0", "{:value=>\"Self\"}", "0", "{:value=>\"Father\"}",        
  "0", "{:value=>\"Mother\"}",       
  "0", "{:value=>\"Spouse\"}", "0", "0"       
]     
a.map{|s| s[/\{:value=>\"(.*)\"\}/, 1]}.compact
# => ["Self", "Father", "Mother", "Spouse"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...