通常,我可以将表单中的参数直接传递给first_or_create语句,例如:
publication = Publication.where(params[:publication]).first_or_create
但是,我当前的表单有嵌套属性,这会导致一些问题。具体来说,嵌套表单会传回params,例如:
publications[contributors_attributes][0][name]
这会使SQL查询失败,抛出错误,例如:
Mysql2::Error: Unknown column 'contributors_attributes.0' in 'where clause'. . . .
有关克服此问题的任何提示吗?我能够使用大约28行hacky代码来处理表单,基本上是手动为新对象分配属性。必须有一个更清洁的方法,对吧?