0

我有一个将数据发送到我的控制器的 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])
4

1 回答 1

1

你可能想以不同的方式做到这一点。

例如,也许更好的主意是在表单中使用 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]
})

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

于 2013-01-21T02:42:51.720 回答