如何为rails 5中的活动管理员创建无表格模型?

时间:2017-11-29 22:50:59

标签: model activeadmin ruby-on-rails-5

我们最近将我们的Rails应用程序从4升级到5,并且我在使用无表格模型时遇到了重大变化。在Rails 4中,我们使用了这种模式:

class Foo < ActiveRecord::Base
  attr_accessor :bar

  def self.columns() @columns ||= []; end
end

ActiveAdmin.register Foo do
  def create
    @page_title = "Foo"
    super
  end
end

但是,在rails 5升级之后,我收到了这个错误:

ERROR:  relation "foo" does not exist

有关如何更新Rails 5的无表格模型的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

你需要扩展ActiveModel::Naming并使用一些方法来使它在Rails 5中运行。我发现将所有内容放在模块中也使它也可移植:

class Foo
  include Tableless
  attr_accessor :bar
end

#/lib/tableless.rb
module Tableless
  extend ActiveModel::Naming

  def self.columns
    @columns ||= []
  end

  def initialize(params)
  end

  def self.find(param)
    true
  end

  def to_model
  end

  def persisted?
    false
  end
end