2016-11-22 53 views
0

數組JSON陣列現在,我有這個我的表單裏面:軌道4:創建裏面輸入

<%= f.input :document, collection: @documents, wrapper: false, label: false, input_html: {class: 'fleft mleft5'} %> 

這將生產JSON數組:

[{ 
    "document":"126" 
}] 

我的控制器create下方法:

document: params[:ng_geofence][:document] 

我的莫德爾

def as_hash(format=:google) 
    { 
    document: document 
    } 
end 

%w[document].each do |key| 
    define_method(key) do 
    value && JSON.parse(value)[key] 
    end 
end 

我的問題是如何讓輸出的是這樣的:

[{ 
    "document": 
    { 
    "id":"126" 
    } 
}] 

---- ----修訂

如果我改變了我的形式:

<%= select_tag "ng_geofence[driver_notification][document][id]", options_from_collection_for_select(@documents, "id", "name"), include_blank: true %> 

我收到此錯誤:757: unexpected token at '{"document"=>{"id"=>"126"}}'

可能因爲"=>"代替":"

+0

是'document'模式?因爲如果是的話,那麼我認爲我有一個更簡單的解決方案。 – Finks

+0

'{「document」:「126」}'不是數組,'[..]'這裏是數組,'{..}'什麼是json對象。 –

+0

@Finks nope。其屬性 – AmirolAhmad

回答

0

解決我自己的問題。在這裏我做了什麼:

我的控制器下創建方法:

document: { 
    id: params[:ng_geofence][:document] 
} 

我的模型

def as_hash(format=:google) 
{ 
    document: { id: document } 
}