2013-05-23 6 views
0

У меня есть страница для автора, в которой перечислены книги авторов. Я хотел бы иметь возможность добавить имя книги в строку, чтобы быстро добавить новую ассоциацию книг. Я мог бы сделать это довольно легко с рельсами MVC на переднем конце, но мне тяжело подрывать DSL ActiveAdmin, чтобы делать вещи, которые не совсем из коробки.Rails Active Admin - Редактировать/создать связь на странице показа?

Вот текущая таблица данных на странице показа прямолинейно.

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 наборов, но он чувствует, как я пропускаю некоторые основные понятия о том, как она функционирует, и документы не помогают мне понять это ...

ответ

0

Вы могли бы, например, отрисуйте a из частично на странице «Показать» и добавьте все необходимые действия контроллера, чтобы добавить книги и перенаправить обратно на страницу «Показать».

row("Add book") do |item| 
     div do 
     render "form_to_add_books" 
     end 
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 

в вашей модели книги.