Rails 4:在输入中的数组中创建JSON数组

时间:2016-11-22 09:04:51

标签: ruby-on-rails arrays json ruby

现在,我的形式是:

<%= 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"}}'

可能是因为"=>"而不是":"

1 个答案:

答案 0 :(得分:0)

解决了我自己的问题。我在这做了什么:

创建方法下的

我的控制器

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

我的模特

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