在尝试获取ActiveAdmin表单以使用基于对象的枚举属性的键的选择框时,我仍然遇到undefined method
错误。关于堆栈溢出到configure active admin forms for enums 的建议方法似乎让我走了一半虽然我的对象的引擎方面似乎通过NoMethodError
异常使enum属性。
#/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
答案 0 :(得分:6)
我认为cover_type
应该是多元化的。
f.input :cover_type, as: :select, collection: BookStore::Book.cover_types.keys
答案 1 :(得分:1)
几乎是一个相关的答案......
您可以使用enumerize gem和activeadmin addons来很好地处理枚举。