【问题标题】:Enum selection in ActiveAdmin for a Engine Model引擎模型的 ActiveAdmin 中的枚举选择
【发布时间】:2015-08-18 18:01:19
【问题描述】:

在尝试让 ActiveAdmin 表单使用基于对象枚举属性的键的选择框时,我继续收到 undefined method 错误。遵循关于堆栈溢出到configure active admin forms for enums 的建议方法似乎让我走到了一半,尽管我的对象的引擎方面似乎通过NoMethodError 异常使枚举属性。

 #/lib/book_store/admin/books
 if defined?(ActiveAdmin)
  ActiveAdmin.register  BookStore::Book, as: 'Book' do
    # customize your resource here
    form do |f|
      f.semantic_errors # shows errors on :base
      f.inputs   do
        f.input :cover_type, as: :select, collection:  BookStore::Book.cover_type.keys
      end
      f.actions         # adds the 'Submit' and 'Cancel' buttons
    end
    permit_params :name, :lead, :excerpt, :description, :price, :slug, :cover_type, :num_pages, :size, :cover_image, :author, :author_id, :category
  end
end



#app/models/book_store/book.rb
module BookStore
  class Book < ActiveRecord::Base
    belongs_to :author
    belongs_to :category
    enum cover_type: [:soft, :hard]
  end
end

得到以下错误

undefined method `cover_type' for #<Class:0x007fe685217af0>

这里是完整的stack trace

【问题讨论】:

    标签: ruby-on-rails enums activeadmin


    【解决方案1】:

    我认为cover_type 应该是复数形式。

    f.input :cover_type, as: :select, collection:  BookStore::Book.cover_types.keys
    

    【讨论】:

    • 是的,没错。这是一个容易忽视的项目。 掌心
    【解决方案2】:

    几乎是一个相关的答案......

    您可以使用enumerize gemactiveadmin addons 很好地处理枚举。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2014-06-06
      相关资源
      最近更新 更多