【发布时间】:2018-09-12 13:15:04
【问题描述】:
我创建了一个只有 rails api 的应用程序。模型之间的关联如下:
class Book < ApplicationRecord
has_and_belongs_to_many :authors
accepts_nested_attributes_for :authors, allow_destroy: true
end
class Author < ApplicationRecord
has_and_belongs_to_many :books
end
现在,当我尝试使用邮递员发布的参数创建一个新的Book 时,
{
"book": {
"name": "Angels and Demons",
"isbn": "12323012123213",
"authors_attributes": [{"id": 1}, {"id": 2}]
}
}
它给了我以下错误:虽然数据库中存在 ID 为 1 的作者。
"message": "找不到 ID=1 的作者 ID="
如果我更改了我的表单参数,如下所示:
{
"book": {
"name": "Angels and Demons",
"isbn": "12323012123213",
"authors_attributes": [{"0": {"id": 1}}, {"1": {"id": 2}}]
}
}
它给了我来自Author 模型的验证错误。
控制器强参数:
def book_params
params.require(:book).permit(:name, :isbn, authors_attributes: [:id, :_destroy])
end
知道我做错了什么吗?
【问题讨论】:
-
@Mezbah,是的,我确实在问题上提到了这一点。
标签: ruby-on-rails postman nested-forms