Ruby on rails 如何在rails api专用应用程序中使用JSON与postman一起保存具有嵌套属性的模型

Ruby on rails 如何在rails api专用应用程序中使用JSON与postman一起保存具有嵌套属性的模型,ruby-on-rails,json,ruby-on-rails-4,postman,rails-api,Ruby On Rails,Json,Ruby On Rails 4,Postman,Rails Api,我正在创建一个只支持rails api的应用程序。 我有2个模型用户和帐户。 用户模型如下所示 class User < ActiveRecord::Base has_many :accounts accepts_nested_attributes_for :accounts end 我对rails不太熟悉,但我想我可以帮你。我同意Connorckee的观点,即查看控制器代码会有所帮助。 一般来说,JSON应该类似于: { userProperty1: userPropert

我正在创建一个只支持rails api的应用程序。 我有2个模型用户和帐户。 用户模型如下所示

class User < ActiveRecord::Base
  has_many :accounts
  accepts_nested_attributes_for :accounts
end

我对rails不太熟悉,但我想我可以帮你。我同意Connorckee的观点,即查看控制器代码会有所帮助。 一般来说,JSON应该类似于:

{
  userProperty1: userPropertValue1,
  userProperty2: userPropertValue2,
  accounts: [
    {
       accountsProperty1: accountsPropertValue1,
       accountsProperty2: accountsPropertValue2
    }
]}

上面有您的用户类拥有的任何用户属性,包括account对象的accounts数组,该数组反过来应该保存account属性值对。希望这有帮助。如果您在实际执行请求时需要更多帮助,请告诉我。

我不熟悉rails,但我想我可能能够帮助您。我同意Connorckee的观点,即查看控制器代码会有所帮助。 一般来说,JSON应该类似于:

{
  userProperty1: userPropertValue1,
  userProperty2: userPropertValue2,
  accounts: [
    {
       accountsProperty1: accountsPropertValue1,
       accountsProperty2: accountsPropertValue2
    }
]}

上面有您的用户类拥有的任何用户属性,包括account对象的accounts数组,该数组反过来应该保存account属性值对。希望这有帮助。如果您在实际执行请求时需要更多帮助,请告诉我。

您可以在Postman中将嵌套属性保存为JSON,方法是插入如下参数:

"nested-attribute-plural_attributes" : [
    {"attribute" : "value1"},
    {"attribute" : "value2"}
]
{
  "title" : "My birthday party",
  "date" : "26-02-2018",
  "hosts_attributes": [
    {"name" : "Mom"},
    {"name" : "Sister"}
  ]
}
我将以“派对应用程序”为例。因此,您希望创建一个新的
参与方
,并将
主机
添加为嵌套属性。您的邮递员请求如下所示:

"nested-attribute-plural_attributes" : [
    {"attribute" : "value1"},
    {"attribute" : "value2"}
]
{
  "title" : "My birthday party",
  "date" : "26-02-2018",
  "hosts_attributes": [
    {"name" : "Mom"},
    {"name" : "Sister"}
  ]
}
请记住,您的
parties\u controller
必须在许可参数中具有
hosts\u属性

def party_params
  params.permit(
    :title,
    :date,
    hosts_attributes: [:name]
  )
end

通过插入如下参数,可以在Postman中将嵌套属性另存为JSON:

"nested-attribute-plural_attributes" : [
    {"attribute" : "value1"},
    {"attribute" : "value2"}
]
{
  "title" : "My birthday party",
  "date" : "26-02-2018",
  "hosts_attributes": [
    {"name" : "Mom"},
    {"name" : "Sister"}
  ]
}
我将以“派对应用程序”为例。因此,您希望创建一个新的
参与方
,并将
主机
添加为嵌套属性。您的邮递员请求如下所示:

"nested-attribute-plural_attributes" : [
    {"attribute" : "value1"},
    {"attribute" : "value2"}
]
{
  "title" : "My birthday party",
  "date" : "26-02-2018",
  "hosts_attributes": [
    {"name" : "Mom"},
    {"name" : "Sister"}
  ]
}
请记住,您的
parties\u controller
必须在许可参数中具有
hosts\u属性

def party_params
  params.permit(
    :title,
    :date,
    hosts_attributes: [:name]
  )
end

这里真正重要的是用户控制器中的创建操作(这将确定来自Postman或任何其他源的传入数据的可接受形式,并允许您对其执行任何操作,例如保存多个对象)。你能从你的用户_controller.rb发布代码吗?@connorcmakee我的用户控制器由我用于基于令牌的身份验证的designe _auth _tokengem处理。这里真正重要的是你的用户控制器中的创建操作(这将确定从Postman或任何其他来源传入的数据的可接受形式,并允许您对其执行任何操作,例如保存多个对象)。您可以发布您的用户\u controller.rb的代码吗?@connorcmakee我的用户控制器由Desive\u auth\u token gem处理,我正在使用它进行基于令牌的身份验证。请检查我收到的服务器日志错误。我已经在底部@gartuantezmaximusic添加了相同的代码。看起来您的请求正在发送到服务器,但它不喜欢您的方式您代表您的账户在json中。我对rails一点也不熟悉,所以我不知道我能提供多少帮助。你能创建一个用户对象并可能将它们序列化/转换为json吗。这可能会让你了解json应该采用的格式。@GuartuanTezMaximus尝试过,但仍然不起作用。获取未经许可的参数错误仍然请检查se我收到一个ServerLog错误。我在底部@gartuanTezMaximusIt添加了相同的错误。看起来您的请求正在发送到服务器,但它不喜欢您如何表示您的帐户在json中。我对rails一点也不熟悉,所以我不知道我能提供多少帮助。你能创建一个用户对象并可能将它们序列化/转换为json吗。这可能会让你了解json应该采用的格式。@GuartuanTezMaximus尝试过它仍然不起作用。获取未经许可的参数仍然是错误的