Rails Active Admin - 在显示页面上编辑/创建关联?

时间:2013-05-23 17:55:30

标签: ruby-on-rails associations activeadmin

我有一个列出作者书籍的作者的展示页面。我希望能够在线添加书名以快速添加新的书籍关联。我可以很容易地使用前端的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的设置速度,但感觉我错过了一些关于它如何运作的基本概念,而且文档并没有帮助我掌握它......

2 个答案:

答案 0 :(得分:0)

例如,您可以在“显示”页面中将“从”部分渲染为部分,并添加任何所需的控制器操作以添加书籍并重定向回“显示”页面。

    row("Add book") do |item|
      div do
        render "form_to_add_books" 
      end

答案 1 :(得分: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

在您的图书模型中。