因此,似乎没有任何干净的方法可以通用地允许具有强参数的 Hash 字段。这当然可能是一个强大的参数问题,但我很好奇是否有解决方法。我有一些领域的模型......
field :name, type: String
field :email, type: String
field :other_stuff, type: Hash, default: {}
现在我可以允许一切:
params.require(:registration).permit!
但这并不是一个好主意,我想做的是......
params.require(:registration).permit(:name, :email, { other_stuff: {} })
然而,这似乎不适用于强参数,不可能仅将哈希作为属性列入白名单(对于以 SQL 为中心的 ActiveRecord API 来说是的!)。任何想法如何做到这一点,或者我最好的办法是提交一个 Rails 补丁以允许这种情况。