0

我有一个作者的展示页面,列出了作者的书籍。我希望能够在线添加书名以快速添加新书关联。我可以在前端使用 rails MVC 很容易地做到这一点,但是我很难理解 activeadmin DSL 来做一些不是开箱即用的事情。

这是显示页面上的当前数据表,直截了当。

    show :title => :name do
        panel "Books" do
            table_for(author.books) do 
                column("Book") { |book| link_to book.name.titleize, admin_book_path(book) }
                column("Release") { |book| book.release_date.to_formatted_s(:long_ordinal)}
                column("Sales") { |book| book.orders.count }
            end
        end
    end

我想在列表底部看到一个空白文本字段,我可以输入新书名并单击添加将其添加到列表中。但我只在文档中看到有关如何编辑表单本身的信息,这些信息仅显示在编辑页面上。

总的来说,我喜欢 activeadmin 设置的速度,但感觉就像我错过了一些关于它如何运作的基本概念,并且文档并没有帮助我掌握它......

4

2 回答 2

0

只需在模型中使用关联并像这样使用它

form do |f|
  f.inputs do
    f.input :book_name
      f.inputs do
        f.has_many :titles do |p|
           p.input :title
         end  
        end
       end

f.has_many 会自动生成按钮。

并且不要忘记使用

accepts_nested_attributes_for :titles

在您的书籍模型中。

于 2013-11-19T09:58:19.097 回答
0

例如,您可以在 Show 页面中将 from 作为部分呈现,并添加任何需要的控制器操作以添加书籍并重定向回 Show 页面。

    row("Add book") do |item|
      div do
        render "form_to_add_books" 
      end
于 2013-06-18T05:25:31.350 回答