如果想要在Active Admin中为模型创建新条目,请单击操作按钮"创建新的新雇主"。然后我收到此错误消息:
管理员::雇主#new
中的Formtastic :: UnknownInputError无法找到输入类BinaryInput
@input_class_finder.find(as)
rescue Formtastic::InputClassFinder::NotFoundError
raise Formtastic::UnknownInputError, "Unable to find input #{$!.message}"
end
# @api private
答案 0 :(得分:1)
@Nikita,首先请阅读文档https://github.com/activeadmin/activeadmin/tree/68d50d4221976df9d42e5d670b0877770ca8eeef/docs,这将回答您的大部分问题。
默认情况下,ActiveAdmin呈现数据库表的所有列以显示表单,并且无法显示此特定的表 因为没有处理二进制列的选项(检查,雇主表中有一个二进制类型的列)
所以有两个选项
1)覆盖你在此处描述的表单声明 https://github.com/activeadmin/activeadmin/blob/68d50d4221976df9d42e5d670b0877770ca8eeef/docs/5-forms.md
如果您需要显示列,请使用 class BinaryInput < Formtastic::Inputs::StringInput
end
选项。
2)也可以创建自定义输入来执行此操作添加初始化程序,使用可能不属于您的情况。
{{1}}
答案 1 :(得分:1)
这对我有用:在下面创建一个文件,它将解决错误。
# app/inputs/inet_input.rb
class InetInput < Formtastic::Inputs::StringInput
end
在这种情况下,将
inet
替换为BinaryInput
可能的问题是,Formtastic
无法将列类型映射到HTML输入类型。
用formtastic(〜> 3.1)测试该溶液
答案 2 :(得分:0)
编辑User
资源时遇到了同样的问题,该资源由Devise创建时具有
t.inet "current_sign_in_ip"
列类型。
如果可以将数据类型从inet
更改为string
,只需生成一个迁移:
rails g migration ChangeDatabaseColumnTypeForIpAddressesInUsers
class ChangeDatabaseColumnTypeForIpAddressesInUsers < ActiveRecord::Migration[5.2]
def change
change_column :users, :current_sign_in_ip, :string
change_column :users, :last_sign_in_ip, :string
end
end
答案 3 :(得分:0)
我遇到了这个问题,不喜欢StringInput
解决方案,因为它是一行并且不能处理换行符。您可以通过
# ./app/inputs/binary_input.rb
class BinaryInput < Formtastic::Inputs::TextInput
end
所示