2013-12-12 26 views
1

我有一個嵌套的表單,不會因任何原因更新,也沒有更新正在拋出,並且表單參數顯示正確。Rails嵌套屬性不更新模型,但參數是正確的

問題是與 「medium_prices_attributes」

這裏的PARAMS:"store"=> {"style_price_list_attributes"=> {"frame_low_cost"=>"4.00", "frame_middle_cost"=>"5.00", "frame_high_cost"=>"6.00", "id"=>"53", "color_styles_avail"=>"true", "frame_avail"=>"true", "stretcher_bars_75"=>"5.00", "stretcher_bars_75_avail"=>"true", "stretcher_bars_1_25"=>"5.00", "stretcher_bars_1_25_avail"=>"false", "stretcher_bars_1_5"=>"5.00", "stretcher_bars_1_5_avail"=>"true", "stretcher_bars_1_75"=>"5.00", "stretcher_bars_1_75_avail"=>"false" }, "shipping_price_list_attributes"=> {"shipping_prices"=>{"minimum_price"=>"5.00", "price_for_print_only"=>"7.00", "price_wrapped"=>"", "price_framed"=>""}, "id"=>"52"}, "medium_prices_attributes"=> {"0"=>{"price_per_sq_ft"=>"10.00", "id"=>"2458"}, "1"=>{"price_per_sq_ft"=>"10.00", "id"=>"2466"}, "2"=>{"price_per_sq_ft"=>"10.00", "id"=>"2467"}, "3"=>{"price_per_sq_ft"=>"99", "id"=>"2457"}, "4"=>{"price_per_sq_ft"=>"99", "id"=>"2459"}, "5"=>{"price_per_sq_ft"=>"111.00", "id"=>"2465"}}, "medium_availabilities_attributes"=> {"0"=>{"id"=>"4005"}, "1"=>{"id"=>"4006"}, "2"=>{"id"=>"4010"}, "3"=>{"id"=>"4009"}, "4"=>{"id"=>"4011"}, "5"=>{"id"=>"4012"}}, "page_attributes"=> {"name"=>"Store22", "headline_text"=>"Store", "id"=>"1124"}, "paypal_email"=>"", "currency"=>"USD", "default_sizes"=>"6x8"}, "page"=>{"online_status"=>"true", "pswd"=>"", "active_billboard_id"=>"", "title"=>"Store", "meta_keywords"=>"", "meta_description"=>"", "slug"=>"store", "script_head"=>"", "script_body"=>""}, "id"=>"123"}

我store.rb有:

attr_accessible :medium_prices_attributes 

has_many :medium_prices 

accepts_nested_attributes_for :medium_prices 

正如你可以在我的PARAMS看到,style_price_list_attributes和shipping_price_list_attributes是那裏,他們更新正確。這只是中等價格有問題。

當我嘗試更新控制檯中的屬性時,我得到一個「true」響應,但該medium_price記錄的值不會更改。例如:

Store.find(163).update_attributes("medium_prices_attributes"=>{"1"=>{"price_per_sq_ft"=>"122.00", "id"=>"2457"}}) 

(0.2ms) BEGIN 
(0.5ms) UPDATE "stores" SET "updated_at" = '2013-12-12 15:19:24.042735',   "default_sizes" = '--- 
- 6x8 
' WHERE "stores"."id" = 123 
    (0.3ms) COMMIT 
=> true 

謝謝!

回答

1

大的動盪之後,事實證明我有

has_many :medium_prices 
在我的商店模式列出兩次

。名單很長,所以當時我沒有收到。 Rails不會拋出錯誤,所以很難追蹤到。

+1

在繼承模型中有同樣的問題。花了我幾個小時才找到。謝謝! :) –