【问题标题】:permit params by JSON Rails允许 JSON Rails 的参数
【发布时间】:2018-10-30 21:16:44
【问题描述】:

我在尝试验证 Rails 中的参数时遇到问题,我想通过 POST 发布数据,但我需要先验证 Json 对象的结构。

这是我的 JSON:

{"car":{"year": 2018, "owner": "Fernando"}}

我不想将值保留为空。

def car_params
  params.require(:car).permit(:model, :year)
end

如果在 JSON 结构中存在例如所有者字段,我需要抛出错误。

祝你有美好的一天。

【问题讨论】:

  • 存在强参数来执行这项工作。如果您没有在允许的参数中包含owner 并尝试使用此参数保存您的对象,模型将抛出异常。问题是,为什么要“仔细检查”这种行为?
  • 如果 json 结构不正确,我只想返回 400 错误,我不想保持该值为空,我想拒绝该帖子。问候。
  • 问题是模型没有抛出任何东西,而是将对象保存到数据库,但字段所有者保存为 nil,我不想这样做,只抛出 400,请如果有人可以帮助我,我将不胜感激。

标签: json ruby api ruby-on-rails-5 restful-url


【解决方案1】:

您可以检查所有者字段是否存在并引发错误,例如...

def car_params
  raise StandardError.new('Invalid JSON structure.') if params[:car].key?(:owner)
  params.require(:car).permit(:model, :year)
end

这就是你的想法吗?我不确定我是否明白你的意思。

【讨论】:

  • 不是真的,我想拒绝访问与模型或年份不同的所有内容,而不仅仅是所有者。非常感谢您的回答,问候。
猜你喜欢
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多