ActiveAdmin rails 3.2的保留字问题

时间:2013-05-24 08:45:50

标签: ruby-on-rails-3 activeadmin

我在我的有效管理界面中添加了以下内容:

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

2 个答案:

答案 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。这样您就不需要覆盖控制器。