Is it possible to add nested form to #show page?
Now i have my admin/posts.rb:
ActiveAdmin.register Post do
  show do |post|
    h2 post.title
    post.comments.each do |comment|
      row :comment do comment.text end
    end
  end
end
It lists all the comments for post. Now i need a form to add new comments. I'm trying to do like this:
ActiveAdmin.register Post do
  show do |post|
    h2 post.title
    post.comments.each do |comment|
      row :comment do comment.text end
    end
    form do |f|
      f.has_many :comments do |c|
        c.input :text
      end
    end
  end
end
and get an error:
undefined method `has_many' for <form></form> :Arbre::HTML::Form
Models for Post and Comments look like:
class Post < ActiveRecord::Base
  has_many :comments
  accepts_nested_attributes_for :comments
end
class Comment < ActiveRecord::Base
  belongs_to :post
end
How do i add that form to my show page? Thanks
I did something like this for a has_one relation :
ActiveAdmin.register Post do
  show :title => :email do |post|
    attributes_table do
      rows :id, :first_name, :last_name
    end
    panel 'Comments' do
      attributes_table_for post.comment do
        rows :text, :author, :date
      end
    end
  end
end
If you didn't need the added flexibility of sorens' solution I bet you could work with that.
I use the following recipe when adding this type of info to a show page
    ActiveAdmin.register Post do
      show :title => :email do |post|
        attributes_table do
          row :id
          row :first_name
          row :last_name
        end
        div :class => "panel" do
          h3 "Comments"
          if post.comments and post.comments.count > 0
            div :class => "panel_contents" do
              div :class => "attributes_table" do
                table do
                  tr do
                    th do
                      "Comment Text"
                    end
                  end
                  tbody do
                    post.comments.each do |comment|
                      tr do
                        td do
                          comment.text
                        end
                      end
                    end
                  end
                end
              end
            end
          else
            h3 "No comments available"
          end
        end
      end
    end
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With