Chr*_*ola 6 mongoid strong-parameters ruby-on-rails-4
因此,似乎没有任何干净的方法来一般地允许具有强参数的Hash字段.这当然可能是一个强大的参数问题,但我很好奇是否有解决方法.我有一些领域的模型......
field :name, type: String
field :email, type: String
field :other_stuff, type: Hash, default: {}
Run Code Online (Sandbox Code Playgroud)
现在我可以允许一切:
params.require(:registration).permit!
Run Code Online (Sandbox Code Playgroud)
但这不是一个好主意,我想做的是......
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
Run Code Online (Sandbox Code Playgroud)
来源:https://github.com/rails/rails/issues/9454#issuecomment-14167664
| 归档时间: |
|
| 查看次数: |
2279 次 |
| 最近记录: |