我想问一下如何自定义活动管理员。 我正在创建自己的博客并使用活动的admin gem创建管理页面。 这通过article_tag表与article和tag有很多关系。
我想要做的是从文章面板添加标签,我能够在文章面板中显示标签视图,但它不能正常工作。(保存一次后我不能更新或删除标签)
http://localhost:3000/admin/articles/new
我像这样与Article和Tag模型建立了多对多关系。
article.rb
class Article < ActiveRecord::Base
has_many :article_tags
has_many :tags, through: :article_tags
accepts_nested_attributes_for :article_tags, :allow_destroy => true
end
tag.rb
class Tag < ActiveRecord::Base
has_many :article_tags
has_many :articles, through: :article_tags
end
article_tag.rb
class ArticleTag < ActiveRecord::Base
belongs_to :article
belongs_to :tag
end
我定制了这样的活跃管理员。
ActiveAdmin.register Article do
permit_params :title, :description, :url, :image_url, :media, article_tags_attributes: [:article_id, :tag_id, :name, :_destroy, :_edit]
form do |f|
# f.semantic_errors *f.object.errors.keys
f.inputs "Admin Details" do
f.input :title
f.input :description
f.input :url
f.input :image_url
f.input :media
f.input :publish
end
f.inputs "Articles" do
f.has_many :article_tags do |t|
t.input :tag
end
end
f.actions
end
end
但是在我用标签保存文章后,我无法更新标签或删除标签...... 有谁知道如何解决这个问题?
答案 0 :(得分:0)
您忘记了允许article_tag对象的:id
属性。它在更新/删除现有嵌套对象时传递。
ActiveAdmin.register Article do
permit_params :title, :description, :url, :image_url, :media, article_tags_attributes: [:id, :article_id, :tag_id, :name, :_destroy, :_edit]
...
end