活动管理员中has_many关系加入新资源的表格

问题描述 投票:0回答:1

所以我的数据库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操作并初始化新对象?如果我想动态添加多本书怎么办?是否有针对这种情况的默认解决方案?

ruby-on-rails ruby forms activeadmin
1个回答
0
投票

我从您所说的内容中首先想到的就是,您需要允许用户使用参数以及书籍。数据库需要INSERT INTO用户,就像需要INSERT INTO书籍一样。因为Rails是一个很好的框架,并且说“配置公约”,所以我们可能给您一个适当答案的唯一方法是检查您的存储库。

但是“ new_record?”当您尝试向数据库中插入新数据时,该方法始终在运行。您不会看到它,因为它不会显示任何内容,直到您尝试插入新数据而不运行另一个数据库迁移。在最新的Rails版本中,迁移以rails db:migrate运行。旧版Rails使用rake db:migrate

正如我所说,检查您的回购是给您适当答案的最佳方法。干杯

© www.soinside.com 2019 - 2024. All rights reserved.