所以我的数据库Author
has_many Books
中的情况非常简单。通过活跃的管理员,我希望使用户能够在其新书中添加新作者。我现在所拥有的看起来像这样:
ActiveAdmin.register Author do
menu false
actions :new, :create
permit_params :books
form do |f|
f.has_many :books, new_record: true do |book|
books.inputs 'book' do
book.input :title
end
end
end
end
但是,当我转到new
动作时,我得到的错误undefined method new_record? for nil:NilClass
指向f.has_many :books, new_record: true do |book|
行。我是否需要覆盖new
操作并初始化新对象?如果我想动态添加多本书怎么办?是否有针对这种情况的默认解决方案?
我从您所说的内容中首先想到的就是,您需要允许用户使用参数以及书籍。数据库需要INSERT INTO用户,就像需要INSERT INTO书籍一样。因为Rails是一个很好的框架,并且说“配置公约”,所以我们可能给您一个适当答案的唯一方法是检查您的存储库。
但是“ new_record?”当您尝试向数据库中插入新数据时,该方法始终在运行。您不会看到它,因为它不会显示任何内容,直到您尝试插入新数据而不运行另一个数据库迁移。在最新的Rails版本中,迁移以rails db:migrate
运行。旧版Rails使用rake db:migrate
。
正如我所说,检查您的回购是给您适当答案的最佳方法。干杯