选择具有创建新功能



我正在为这样的功能寻找合适的解决方案:

  1. 我们有属于Author的型号Book
  2. 在创作新书时,我们可以从现有书籍中选择一位作者
  3. 在选择输入下有一个链接"创建新作者"
  4. 单击此链接时,模式窗口将显示作者的表单(:name:biography:picture等)
  5. 提交表单后,作者即被创建并可供选择

不希望有人为我编写现成的代码,但如果有人告诉我解决这个问题的正确方法,我将非常感激

您需要将以下内容添加到Book型号中

belongs_to :author
accepts_nested_attributes_for :author

现在,在您的控制器中,您需要允许author_idauthor_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的作者。

祝你好运。

最新更新