Mongoid中使用强参数的动态哈希字段

因此,似乎没有任何干净的方法来一般地允许具有强参数的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补丁来允许这种情况.

解决方法

好了,经过研究,我找到了一个优雅的解决方案,我也会开始使用它:
params.require(:registration).permit(:name).tap do |whitelisted|
  whitelisted[:other_stuff] = params[:registration][:other_stuff]
end

来源:https://github.com/rails/rails/issues/9454#issuecomment-14167664

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...