Ruby on rails 如何在rails api专用应用程序中使用JSON与postman一起保存具有嵌套属性的模型
我正在创建一个只支持rails api的应用程序。 我有2个模型用户和帐户。 用户模型如下所示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
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尝试过它仍然不起作用。获取未经许可的参数仍然是错误的