2013-10-26 15 views
0

我正在rails中使用form_tags,並使用MongoDB作爲我的應用程序。需要Rails數組值的雙引號,如[「1」,「2」,「3」]

使用的form_tag我得到PARAMS [:IDS]使用POST方法類似這樣的

["5262353ebd521b131a000010", "526b47f8bd521bd1b3000002"] 

,我保存這個PARAMS [:ID]作爲hidden_​​field作爲

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

但其存儲在MongoDB中這樣

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

但取而代之的是我需要存儲的,

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

雙引號, 對於單ID,它的工作的罰款。對於多個值,其不存儲如上。

請在這方面幫助我。

+0

之前保存的對象,在'PARAMS分割字符串[:IDS]'使其成爲一個數組。 –

+0

,但它會顯示爲「[[\」5262353ebd521b131a000010 \「,\」526b47f8bd521bd1b3000002 \「]]」。所以爲了使它成爲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!!!