Dar*_*inH 14 ruby activerecord activeadmin rails-activerecord
问题几乎说明了一切.
我有一个支持定义良好的API的现有站点.
我需要为它建立一个很好的管理界面,而且,由于我之前使用过ActiveAdmin创建效果,我很乐意在这里使用它.
但是,我找不到有关是否可以这样做的任何细节.
我读过评论说AA支持ActiveModel类型的对象,它们不一定要基于ActiveRecord,但我已经不用自己尝试了,或者找到了这样的例子.
任何人都知道这是否可能?
ben*_*ick 14
我能够通过使用ActiveAdmin自定义页面实现此目的.
在我们的例子,我们有一个叫做模型MailingList.这是一个包含一些ActiveModel功能的Ruby类.
# app/models/mailing_list.rb
class MailingList
  include ActiveModel::Validations
  include ActiveModel::Conversion
  extend ActiveModel::Naming
  attr_accessor :name
  validates_presence_of :name
   def initialize(args)
     # Set up instance variables
   end
   def self.all
     # Use API to retrieve list of records
   end
   def save(args)
     # Use API to save record
   end
   def id
     # Unique identifier from API
   end
   def persisted?
     false
   end
end
要在ActiveAdmin中使用此API驱动模型,我们创建一个这样的页面.
# app/admin/mailing_list.rb
ActiveAdmin.register_page 'Mailing Lists' do
  action_item do
     link_to 'New Mailing List', admin_mailing_lists_new_path
  end
  content do
    redirect_to :index
  end
  page_action :index do
    @mailing_lists = MailingList.all
    render :index, :layout => 'active_admin'
  end
  page_action :show do
    render :show, :layout => 'active_admin'
  end
  page_action :new do
    @mailing_list = MailingList.new
    render :new, :layout => 'active_admin'
  end
  page_action :create, :method => :post do
    @mailing_list = MailingList.new(params[:mailing_list])
    if @mailing_list.save
      redirect_to admin_mailing_list_path(@mailing_list.id)
    else
      render :new, :layout => 'active_admin'
    end
  end
end
这些page_action方法充当控制器动作.
为了让它按预期工作,我必须添加以下路由
# config/routes.rb
post '/admin/mailing_lists' => 'admin/mailing_lists#create'
get '/admin/mailing_lists/new' => 'admin/mailing_lists#new', :as => :admin_new_mailing_list
get '/admin/mailing_lists/:id' => 'admin/mailing_lists#show', :as => :admin_mailing_list
你还需要一些观点
app/views/admin/mailing_lists/index.html.erb
app/views/admin/mailing_lists/show.html.erb
app/views/admin/mailing_lists/new.html.erb
| 归档时间: | 
 | 
| 查看次数: | 2742 次 | 
| 最近记录: |