活动管理员:如何设置页面标题?

时间:2013-06-03 20:51:53

标签: ruby-on-rails ruby-on-rails-3 activeadmin

这似乎应该相对简单,但我在跟踪答案时遇到了一些麻烦:

如何在ActiveAdmin中设置页面标题?

8 个答案:

答案 0 :(得分:18)

整合答案并添加一点:

大部分内容都在this page on the wiki上(或者我很快就会把它放在那里)。

在为activeadmin注册模型的文件中(例如app / admin / user.rb),你可以拥有

ActiveAdmin.register User do
  # a simple string
  index :title => "Here's a list of users" do
    ...
  end

  # using a method called on the instance of the model
  show :title => :name do
    ...
  end

  # more flexibly using information from the model instance
  show :title => proc {|user| "Details for "+user.name } do
    ...
  end

  # for new, edit, and delete you have to do it differently
  controller do
    def edit
      # use resource.some_method to access information about what you're editing
      @page_title = "Hey, edit this user called "+resource.name
    end
  end
end

答案 1 :(得分:8)

搜索完毕后,

您可以将:title属性添加到活动管理员的块中。

例如

1)设置索引页面的标题,

index :title => 'Your_page_name' do
....
end

2)为节目页面设置标题,

show :title => 'Your_page_name' do
....
end

答案 2 :(得分:2)

如果有人(像我一样)仍在努力采取行动new

def new
  @page_title="My Custom Title"
  super
end

别忘了添加super。但是,edit操作不需要这样做。

答案 3 :(得分:1)

根据this post,您可以在选择的操作中使用如下所示的行:

@page_title="My Custom Title"

例如,要在“new”之类的预先存在的操作中实现此功能,您可以执行以下操作:

controller do
  def new do
    @page_title="My Custom Title"
    new! do |format|
       format.html{render "my_new"}
    end
  end
end

答案 4 :(得分:1)

如果我的问题没错,您想重命名activeadmin中的模型以使其在所有操作中都具有另一个名称,例如,将“ Post”模型重命名为ActiveAdmin中的“ Article”,这样做只需转到模型管理员文件夹中的文件,第一行更改为

ActiveAdmin.register Post do

ActiveAdmin.register Post, as: "Article"

如果出现问题,请重新启动Rails服务器,泊坞窗或其他设备

答案 5 :(得分:0)

简单地做

index title: "Me new title"

答案 6 :(得分:0)

我的例子:

两个模型及其关联:

class Course < ApplicationRecord
    has_many :lessons, dependent: :destroy
end
class Lesson < ApplicationRecord
  belongs_to :course
end

我想在课程索引页面上显示课程标题,我测试了两种方法。

仅用于索引

ActiveAdmin.register Lesson do
  belongs_to :course, optional: true
  permit_params :title
  controller do
    def index
      @page_title = " #{Course.find(params[:course_id]).try(:title)}"
      super
    end
end

或所有动作

ActiveAdmin.register Lesson do
  belongs_to :course, optional: true
  permit_params :title
  controller do
    before_action {  
      @page_title = " #{Course.find(params[:course_id]).try(:title)}"
    }
  end
end

然后您可以使用@page_title

  index :title=> @page_title  do
    selectable_column
    id_column
    column :title
    actions

  end

答案 7 :(得分:0)

如果您使用 ActiveAdmin.register_page 并希望在顶部设置菜单名称和页面名称,请尝试以下操作:

ActiveAdmin.register_page "ReleaseNotes" do
  menu label: "Release Notes"
  
  content title: "Release Notes" do
    render partial: 'index'
  end
end