我正在使用包含JSON类型的属性data
的模型构建一个rails API。(项目SQL)
但是当我试着发布这样的东西
{型号:{名称:“你好”,数据:{ a:1,B:2 }
Rails认为a
和b
是嵌套的data
关联的属性...它会将它们视为不允许的参数。问题是,{ a: 1, b: 2 }
是我的字段data
的值。
如何为属性提供JSON值?
编辑:
显示的错误为:
不允许的参数:名称、提供程序、可信度、位置类型、格式化地址、地点ID、类型、位置...
data属性的值为{ name: 'Name', provider: 'Provider', ... }
就像我说的,Rails认为它们是嵌套的data
关联的属性。
日志:Pastebin
3条答案
按热度按时间ny6fqffe1#
如果密钥是事先未知的,这可能是一种变通方法:
字符串
感谢aliibrahim,阅读讨论https://github.com/rails/rails/issues/9454(P.S似乎强参数将在Rails 5.1中支持此用例)
chhqkbe12#
当你发布一些东西时,你必须确保你的json和你的控制器有相同的参数。
示例rails API:
字符串
post的前端json示例:
型
由于某种原因,rails无法识别嵌套的json,所以你需要写入params.permitthatdata将是一个具有该语法的json,如果是数组,**[]**应该为空。
dwthyt8l3#
如果使用Rails v7
字符串
Reference