This looks like a hack to me. Spree uses a callback in controller to handle similar issue (e.g. backorderable checkbox). To contribute back to Spree I would suggest do it in Spree's way. Besides, it looks more Rails-y.