【问题标题】:Send integer data by swagger/postman in rails api在 rails api 中通过 swagger/postman 发送整数数据
【发布时间】:2017-09-22 03:42:58
【问题描述】:

我正在通过 swagger ui(以及邮递员)提交表单

param :form, 'user[role]', :string, :required 。在 user 模型中,角色是一个包含 enum role: [1,2,3] 之类的值的枚举。所以在参数中,我在表单字段中发送 1,但我收到的是 {"user" => {"role" => "1"}},这是正确的。但是用户表单是给error role '1' is not a valid type

Ruby 2.4
Rails 5.1.3

【问题讨论】:

    标签: ruby-on-rails enums postman swagger-ui


    【解决方案1】:

    为什么在传递数组时使用枚举?我使用带有这样哈希的枚举:

    enum role: {
       customer: 1,
       seller: 2,
       "6.5": 2,
       "5.5": 0
    }
    

    然后你传递参数

    {"user" => {"role" => "admin"}} 
    

    在这种情况下在实例中保存 0

    【讨论】:

    • 枚举自动转换为哈希
    • 根据我的要求,我想在数据库中保存整数值
    • @ChakreshwarSharma 这会将整数值保存在数据库中,就像我的示例一样,这会将 0 保存为整数
    • 正确,但是当您从 postman/swagger 提交表单时,它会将值转换为字符串,例如 '1' 在我的情况下,然后枚举找不到该字符串,因为它只需要整数
    • 您也可以在我的示例中将字符串作为参数传递"role" => "admin"
    猜你喜欢
    • 1970-01-01
    • 2021-06-04
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多