我有一个带有一些虚拟属性的模型,它们包含在我的表单中并提交给 Controller ,但我无法将虚拟属性 (SKU) 包装在模型哈希中
{"name"=>"Productname", "description"=>"Description", "sku"=>"ak0001", "product"=>{"name"=>"Productname", "description"=>"Description"}}
我可以使用 wrap_parameters 来覆盖它,但是我必须将所有属性(虚拟和非虚拟属性)添加到数组中,我不能将虚拟属性添加到现有的 wrap 参数中吗?
wrap_parameters Product, :include => [:sku, :name, ..etc...]
最佳答案
我遇到了完全相同的问题,我还没有找到一个很好的解决方案,但我找到了一个看起来更好的解决方案。默认情况下,rails 将尝试确定相关模型并使用该模型调用 wrap_parameters,因此在您的情况下
wrap_parameters Product
这与
wrap_parameters Product, include: Product.attribute_names
所以如果你想添加一个虚拟属性,你可以这样做
wrap_parameters Product, include: Product.attribute_names + [:sku]
关于ruby-on-rails - 如何向 wrap_parameters 添加额外的虚拟属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286962/