Rails4 PG hstore未允许的参数:数据

时间:2014-08-20 14:16:59

标签: ruby-on-rails postgresql

我有一个使用PG hstore的Rails4应用程序。

这是来自控制台:

enter image description here

这是车辆控制器:

    def vehicle_params
      params.require(:vehicle).permit(:description, :stufftype_id, :name, :tenant_id, :count, :manufacturer, :man_date, :purchase_date, :purchase_price, :current_price, :warranty_date, :model, :notes, :site_id, :sell, :loaned, :borrowed, :sell_to, :borrowed_from, :sale_id, :sale_price, :sold_amount, :sold, :archive, :vendor_id, :loaned_to, :data)
    end

它包含:data

那么,为什么数据是一个未经许可的参数?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

当你在强参数中允许:data时,它只允许标量值。

标量值可以是StringSymbolNilClassNumericTrueClassFalseClassDate类型,TimeDateTimeStringIOIOActionDispatch::Http::UploadedFileRack::Test::UploadedFile,如强参数文档中所述:

https://github.com/rails/strong_parameters#permitted-scalar-values

这意味着在params散列中传递Hash的{​​{1}}将不会被允许。

您正在寻找的是一种允许嵌套参数的方法。文档中也对此进行了描述:

https://github.com/rails/strong_parameters#nested-parameters

如果您的hstore密钥是动态的,您可以使用以下SO问题中描述的方法自行将动态哈希列入白名单:

rails 4 strong params + dynamic hstore keys

希望有所帮助。