我敢肯定这是一个相对简单的问题,并且必须有一个很好的合理的轨道方式,但我不确定它是什么.
基本上我将书籍添加到数据库中,我想将作者存储在一个单独的表中.所以我有一个叫做作者的表,由表格书引用.
我想创建一个用于添加书籍的rails表单,我希望它只是Author,Title,Publisher等的简单表单,如果它发现作者已经在authors表中,那么它应该只引用该记录,如果它不在authors表中,那么它应该添加一条新记录并引用它.
我确信在rails中有一种简单的方法 - 但我似乎无法找到它.
干杯,
知更鸟
假设您的表单传递了author_name和带有book属性的书籍哈希,您可以在控制器中执行以下操作:
@author = Author.find_or_create_by_name(params[:author_name]) @book = Book.new(params[:book]) @book.author = @author @book.save
这将通过该名称找到作者,或创建一个,然后将该作者分配给创建的书.
注意:这也假设作者可以通过他们的名字进行唯一标识,而这通常不是这种情况.例如,可能会有多个家伙把"Steven King"命名为"Steven King",其中只有一个人写了The Shining
我建议你在这里观看复杂形式系列的Railscasts .