2010-10-19 2 views
0

У меня есть эта форма и выбор радиостанции «да» или «нет». Get_request_ids (песня) в основном дает мне идентификаторы, которые мне нужны.Должен быть лучший способ сделать эту радиологию

<% form_tag '/somewhere' do -%> 
    <% [ 'yes', 'no' ].each do |status| %> 
    <%= radio_button_tag "group[]#{get_request_ids(song)}", "#{status}[#{get_request_ids(song)}]" %> 
    <%= status.humanize %> 
    <% end %> 
<tr><td><%= submit_tag 'Save' %></td></tr> 
<% end %> 

HTML, выглядит следующим образом

<input id="group_1,2_yes12" name="group[]1,2" value="yes[1,2]" type="radio"> 
Yes            
<input id="group_1,2_no12" name="group[]1,2" value="no[1,2]" type="radio"> 
No 


<input id="group_3,6,7_yes367" name="group[]3,6,7" value="yes[3,6,7]" type="radio"> 
    Yes     
<input id="group_3,6,7_no367" name="group[]3,6,7" value="no[3,6,7]" type="radio"> 
    No 

в Params выглядит следующим образом

group"=>[{"1,2"=>"yes[1,2]", "3,6,7"=>"no[3,6,7]"}] 

я могу разобрать это, чтобы получить запросы да и никакой запрос, но там должен быть лучший способ ... Я чувствую, что это взломать

ответ

1

Мне не совсем ясно, что вы пытаетесь сделать, но e две вещи, которые я замечаю сразу с места в карьер, которые выглядят ненужными:

  • Идентификаторы уже находятся в имени параметра, поэтому их значение также не нужно включать в значение.
  • У вас есть массив «group» в имени параметра, когда он выглядит так, будто вы действительно хотите хеш.

Таким образом, связь radio_button_tag можно упростить следующим образом:

<%= radio_button_tag "group[#{get_request_ids(song)}]", status %> 

Что бы упростить группу параметров для этого:

"group"=>{"1,2"=>"yes", "3,6,7"=>"no"} 

Это дает ту же информацию, в гораздо более упрощенной и доступной форме. Возможно, он даже не нуждается в дополнительном анализе.

Но без какого-либо другого контекста трудно точно сказать, каким будет лучший способ реализовать это. Если вы предоставите более подробную информацию о том, что вы делаете, вы можете получить лучший ответ.

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