我有一个模型,其中一个字段为serialise :config, JSON
。
它应该允许任何哈希值作为值。但我无法通过strong_parameters
找到一种干净的方法。
我目前的解决方案是:
def resource_params
p = params.require(:model)
config = dp.slice(:config).permit!
p.delete(:config)
[p.permit(:foo, :bar, ...).merge(config)]
end
答案 0 :(得分:0)
将整个参数哈希列入白名单,许可证!方法可以使用
params.require(:log_entry)!.permit
还
如果您想确保params中存在多个键 hash,你可以调用两次方法:
params.require(:令牌)
params.require(:柱).permit(:标题)
但我不是这方面的专家。
答案 1 :(得分:0)
您必须使用白名单:
def resource_params
params.require(:model).permit(:foo, :bar, ...).tap do |whitelisted|
whitelisted[:config] = params[:model][:config]
end
end
你可以在这里找到它:http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters搜索“4.5.4超出强参数范围”