【发布时间】:2017-07-23 04:11:32
【问题描述】:
我们正在将我们的应用程序从 Rails 4.2 升级到 Rails 5.0。
我们发现相同的请求在插入数据库时会生成不同的 sql。数据库列是 JSON,看起来在 Rails 5.0 中它被存储为转义字符串。
有谁知道我们如何确保版本之间的行为相同?
请求参数:
参数:{"provider_package_item"=>{"provider_package_id"=>"2", "service_id"=>"6", "service_product_id"=>"17", "provider_price_list_id"=>"12", "provider_price_list_item_id "=>"122", "options"=>"[{\"id\":95,\"title\":\"Finish\",\"value\":{\"id\":\" 130\",\"title\":\"Satin\",\"price\":0}},{\"id\":96,\"title\":\"纸张重量\",\"价值\":{\"id\":\"135\",\"title\":\"200GSM\",\"price\":0}},{\"id\":112,\" title\":\"Delivery\",\"value\":{\"id\":\"189\",\"title\":\"Next Day\",\"price\":0} }]"}}
Rails 4.2 中的数据库查询:
插入“provider_package_items”(“provider_package_id”、“service_id”、“service_product_id”、“provider_price_list_id”、“provider_price_list_item_id”、“options”、“title”、“quantity”、“price”、“options_string”、“ created_at", "updated_at") 值 ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) 返回 "id" [["provider_package_id", 2], ["service_id" , 6], ["service_product_id", 17], ["provider_price_list_id", 12], ["provider_price_list_item_id", 122], ["options", "[{\"id\":95,\"title\": \"Finish\",\"value\":{\"id\":\"130\",\"title\":\"Satin\",\"price\":0}},{\" id\":96,\"title\":\"纸张重量\",\"value\":{\"id\":\"135\",\"title\":\"200GSM\", \"price\":0}},{\"id\":112,\"title\":\"Delivery\",\"value\":{\"id\":\"189\", \"title\":\"Next Day\",\"price\":0}}]"], ["title", "A4 Brochures"], ["quantity", 50], ["price", 65.0], ["options_string", "/Satin/200GSM/Next Day"], ["created_at", "2017-03-03 05:36:51.613297"], ["updated_at", "2017-03-03 05 :36:51.613297"]]
Rails 5.0 中的数据库查询
插入“provider_package_items”(“title”、“service_id”、“service_product_id”、“provider_price_list_id”、“provider_price_list_item_id”、“quantity”、“options”、“options_string”、“created_at”、“updated_at”、“ provider_package_id", "price") 值 ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) 返回 "id" [["title", "A4 Brochures"], [ "service_id", 6], ["service_product_id", 17], ["provider_price_list_id", 12], ["provider_price_list_item_id", 122], ["quantity", 50], ["options", "\"[{\ \"id\\":95,\\"title\\":\\"完成\\",\\"值\\":{\\"id\\":\\"130\\", \\"title\\":\\"缎面\\",\\"price\\":0}},{\\"id\\":96,\\"title\\":\\"纸张重量\\",\\"值\\":{\\"id\\":\\"135\\",\\"title\\":\\"200GSM\\",\\" price\\":0}},{\\"id\\":112,\\"title\\":\\"Delivery\\",\\"value\\":{\\"id\ \":\\"189\\",\\"title\\":\\"第二天\\",\\"price\\":0}}]\""], ["options_string", "/Satin/200GSM/Next Day"], ["created_at", 2017-03-03 05:30:02 UTC], ["updated_at", 2017-03-03 05:30:02 UTC], ["provider_package_id ", 2 ], [“价格”, 65.0]]
【问题讨论】:
标签: ruby-on-rails postgresql ruby-on-rails-5