2013-01-21 35 views
0

我有一個ajax請求將數據發送到我的控制器,但我想在將元素保存到數據庫之前將元素添加到散列。Rails如何將元素插入現有的散列

我現有的哈希看起來是這樣的:

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

我也有元素params[:xposition],並params[:yposition]我想添加到哈希上方,使得它看起來像這樣:

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

如何我去做這件事嗎?

編輯

原因我這麼做是因爲我試圖跟蹤所拖動的元素都在網格上下降的。

在我的ajax調用中,我傳遞了從放置在網格上的一些「data-id」屬性獲得的x和y位置。

在我的控制器方法中,我目前有@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]) 

回答

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] 
}) 

但我不會做,如果我是你。

+0

我正在構建一個拖放界面。 xposition和ypoisition是可拖動元素被刪除的位置。 – Catfish

+0

當你刪除一個元素,你提交一個表單? – Robin

+0

我有一個點擊提交按鈕。有多個可拖放的元素可以被刪除。我試圖跟蹤他們每個人的xposition和yposition。 – Catfish

相關問題