选择能够创建新的

时间:2016-05-04 13:21:32

标签: ruby-on-rails

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

  1. 我们的模型Book属于Author
  2. 创建新书时,我们可以选择现有作者。
  3. 在选择输入下,有一个“创建新作者”链接。
  4. 点击此链接时,会出现模式窗口,其中包含作者的表单(:name:biography:picture等。)。
  5. 提交表单后,创建作者并可供选择。
  6. 不希望有人为我编写准备好的代码,但如果有人告诉我解决此问题的正确方法,我将非常感激

1 个答案:

答案 0 :(得分:3)

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

belongs_to :author
accepts_nested_attributes_for :author

现在在您的控制器中,您需要允许author_idauthor_attributes

的参数

如果您将:name, :biography, :picture属性添加到author_attributes,那么它会在author_id个实例中创建新作者并保存新的Book

如果您指定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的作者。

祝你好运。