Если вы хотите сохранить список идентификаторов кода, тогда вместо управления несколькими скрытыми полями управляйте одним (идентифицируйте как значение CSV).
Попробуйте и внесите следующие изменения:
Измените напроходное значение функции javascript
<div id="<%= code.id %>_" onclick="rate_entry_select_originator(this)" class="rate_select">
Добавить до начала цикла.
<%= hidden_field_tag 'code_ids', :id => 'code_ids' %>
Изменить свою функцию javascript:
function rate_entry_select_originator(code_id) {
var code_id_val = $('#code_ids').val();
var code_id_arr = code_id_val.split(',');
var code_id = $(this).attr('id');
if($(this).hasClass("color_class"))
{
$(this).addClass("color_class");
$('#code_ids').val(code_id_val+','+code_id);
}
else
{
$(this).removeClass("color_class");
// To remove element from aaray
code_id_arr = jQuery.grep(code_id_arr, function(code_id) {
return value != removeItem;
});
$('#code_ids').val(code_id_arr.join(','));
}
}
Please correct some errors , I didn't run it.
Hope that will help.