跟踪如何向现有散列中插入元素



我有一个ajax请求,将数据发送到我的控制器,但我想在将其保存到数据库之前将元素添加到哈希。

我现有的散列是这样的:

{"application_field_attributes"=>{"0"=>{"id"=>"10"}}}

我还想将元素params[:xposition]params[:yposition]添加到上面的散列中,使其看起来像这样:

{"application_field_attributes"=>{"0"=>{"id"=>"10", "xposition"=>"1", "yposition"=>"0"}}}

我该怎么做呢?

编辑

我这样做的原因是因为我试图跟踪可拖动元素在网格上的放置位置。

在我的ajax调用中,我传递了x和y的位置,这是我从一些"data-id"属性中得到的,我放在网格上。

在我的控制器方法中,我目前有@application.update_attributes(params[:application]),但它不包含xposition和yposition,这就是为什么我试图将它们注入哈希。

也许一个更好的解决方案是在update_attributes命令后手动更新控制器中的x和y位置?

所以它看起来像:

@application.update_attributes(params[:application])
@application.update_xposition(params[:xposition])
@application.update_yposition(params[:yposition])

你可能想要做不同的。

也许一个更好的主意是在表单中使用xposition和yposition来隐藏字段,例如

你能告诉我们更多关于你正在尝试做的事情,什么是x/yposition(如果每个应用程序都不同,以及它们来自哪里)。

回答你的问题:

app_attrs = {"application_field_attributes"=>{"0"=>{"id"=>"10"}}}
app_attrs["application_field_attributes"]["0"].merge!({
    "xposition" => params[:xposition],
    "yposition" => params[:yposition]
})

但如果我是你,我就不会那样做。

相关内容

  • 没有找到相关文章

最新更新