我在我的有效管理界面中添加了以下内容:
action_item :only => :show do
link_to('Approve this article', approve_admin_article_path(article)) if article.approved.nil?
end
member_action :approve, :method => :get do
# do approval
redirect_to :action => :show, :notice => "Approved!"
end
这会引发以下错误:
未定义的方法`已批准' :ARBRE :: HTML ::第
我认为发生的事情是Active Admin认为我正在传递文章标签,而不是文章类?
有没有人知道这方面的工作?也许是别名?
谢谢!
类文章<的ActiveRecord ::基
attr_accessible:body
#Relations: belongs_to:articleable,polymorphic:true,:counter_cache =>真正 has_many:comments,as :: commentable,order:'created_at DESC',dependent :: destroy
#Validations validates_presence_of:body validates_length_of:body,最大值:15000
端
答案 0 :(得分:1)
找到了解决方法
当您将课程命名为“文章”时,有些内容可疑,ActiveAdmin在呈现为 <article>
HTML标记时与之相关 - 当然,问题出在控制器的某处,因为这样是生成文章对象的地方
所以,我重写控制器
ActiveAdmin.register Article do
controller do
def show
# grabbing my desired Article and not the <article> tag into some global variable
@@myarticle = Article.find(params[:id])
end
end
sidebar :article_details , :only => :show do
ul do
# using the @@myarticle which I know should be initialized
# (you can put .nil? checking here if you want)
li link_to 'Article Images (' + @@myarticle.images.count.to_s + ')' , admin_article_article_images_path(@@myarticle)
li link_to 'Article Clips ('+@@myarticle.clips.count.to_s + ')' , admin_article_article_clips_path(@@myarticle)
end
end
end
享受
答案 1 :(得分:0)
假设您在&#39; show&#39;中遇到问题?阻止,您可以将显示块更改为以下内容:
show do |object|
end
然后你可以在没有碰撞的情况下调用object.some_method。这样您就不需要覆盖控制器。