我正在为这样的功能寻找合适的解决方案:
- 我们有属于
Author
的型号Book
- 在创作新书时,我们可以从现有书籍中选择一位作者
- 在选择输入下有一个链接"创建新作者"
- 单击此链接时,模式窗口将显示作者的表单(
:name
、:biography
、:picture
等) - 提交表单后,作者即被创建并可供选择
不希望有人为我编写现成的代码,但如果有人告诉我解决这个问题的正确方法,我将非常感激
您需要将以下内容添加到Book
型号中
belongs_to :author
accepts_nested_attributes_for :author
现在,在您的控制器中,您需要允许author_id
和author_attributes
的参数
如果将:name, :biography, :picture
属性添加到author_attributes
,则它将创建一个新作者,并在Book
实例中保存新的author_id
。
如果指定author_id
,则不要指定author_attributes
。
样本参数发送到控制器
{ "book":
{"name": "Sample Book Title",
"author_attributes":
{ name: "John Doe", biography: "Lorem Ipsum Dolor Sir Amet",
picture: "xxx.png"}
}
}
这将创建一个新用户
或者这个
{ "book":
{"name": "Sample Book Title",
"author_id": 2
}
}
这将为该书分配id为2的作者。
祝你好运。