2013-10-26 3 views
0

Я работаю с form_tags в рельсах и с помощью MongoDB для своего приложения.Требовать двойную кавычку для значений массива в Rails, таких как ["1", "2", "3"]

Использование form_tag я получаю Params [: Идентификаторы] с использованием метода пост, как это

["5262353ebd521b131a000010", "526b47f8bd521bd1b3000002"] 

И я спасаю это Params [: идентификатор], как hidden_field в

<%= f.hidden_field :ids, :value => params[:ids].join(","), :multiple => true %> 

Но его хранения в MongoDB, как этот

"ids" : [ 
     "5262353ebd521b131a000010,526b47f8bd521bd1b3000002" 
    ], 

Но вместо этого мне нужно хранить, как,

"ids" : [ 
     "5262353ebd521b131a000010","526b47f8bd521bd1b3000002" 
    ], 

с кавычками, для одного идентификатора его работает отлично. Для нескольких значений оно не сохраняется, как указано выше.

Пожалуйста, помогите мне в этом.

+0

Перед тем, как сохранить объект, разделить строку в 'Params [: Идентификаторы]', чтобы сделать это массив , –

+0

, но он будет отображаться как «[[\" 5262353ebd521b131a000010 \ ", \" 526b47f8bd521bd1b3000002 \ "]]". Поэтому для make MangoDB ObjectID мне нужно хранить как ["1", "2", "3"]. – RubyOnRails

+0

Ну, исправьте свой код дисплея. –

ответ

1

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

<% params[:ids].each do |id| %> 
    <%= hidden_field_tag "ids[]", id %> 
<% end %> 

С, что вы получите массив в ваших действиях и вы можете напрямую сохраните параметры [: ids] с вашей моделью.

1

попробовать для этого <%= f.hidden_field :ids, :value => params[:ids].join('","'), :multiple => true %>

+0

, если у вас возникли ошибки в разборе '«'(двойные кавычки), избежать их и попробуйте еще раз –

+0

Да, уже пробовал, но это приводит, как это,„ doctor_ids“: [ \t \t„5262353ebd521b131a000010 \“, \» 526b47f8bd521bd1b3000002" \t], – RubyOnRails

0
<% params[:ids].each do |id| %> 
    <%= f.hidden_field :ids, :value => id, :multiple => :true %> 
<% end %> 

Это работает и мой MongoDB есть

"ids" : [ 
     ObjectId("526b47f8bd521bd1b3000002"), 
     ObjectId("5262353ebd521b131a000010") 
    ], 

Cheers!!! 

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

  • Нет связанных вопросов^_^