是否可以将嵌套表单添加到#show页面?
现在我有我的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
列出了帖子的所有评论。 现在我需要一个表单来添加新评论。 我想这样做:
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
并收到错误:
未定义的方法`has_many'用于< form>< / form> :ARBRE :: HTML ::表格
帖子和评论的模型如下:
class Post < ActiveRecord::Base
has_many :comments
accepts_nested_attributes_for :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
如何将该表单添加到我的展示页面? 感谢
答案 0 :(得分:21)
我为has_one关系做了类似的事情:
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
如果你不需要增加灵活性的话,那就是#surens&#39;解决方案我打赌你可以解决这个问题。
答案 1 :(得分:10)
将此类信息添加到节目页面时,我使用以下方法
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