Ruby on rails 在模型中创建新条目时,如何解决Active Admin中的Formtastic输入错误
当想要在Active Admin中为模型创建新条目时,我单击操作按钮“创建新雇主”。然后,我收到以下错误消息: Formtastic::未知管理中的输入错误::雇主#新 找不到输入类BinaryInputRuby on rails 在模型中创建新条目时,如何解决Active Admin中的Formtastic输入错误,ruby-on-rails,activeadmin,formtastic,Ruby On Rails,Activeadmin,Formtastic,当想要在Active Admin中为模型创建新条目时,我单击操作按钮“创建新雇主”。然后,我收到以下错误消息: Formtastic::未知管理中的输入错误::雇主#新 找不到输入类BinaryInput @input_class_finder.find(as) rescue Formtastic::InputClassFinder::NotFoundError raise Formtastic::UnknownInputError, "Unable to find input #{
@input_class_finder.find(as)
rescue Formtastic::InputClassFinder::NotFoundError
raise Formtastic::UnknownInputError, "Unable to find input #{$!.message}"
end
# @api private
@Nikita,首先请阅读文档,这将回答您的大多数问题 默认情况下,ActiveAdmin呈现数据库表的所有列以显示表单,但无法显示此特定列 因为没有处理二进制列的选项(请检查,雇主表中有一个二进制类型的列) 因此有两种选择 1) 重写表单声明,如此处所述 如果需要显示列,请为列使用
as::string
选项
2) 也可以创建自定义输入来执行此操作,并使用可能不适合您的源添加初始值设定项
class BinaryInput < Formtastic::Inputs::StringInput
end
class BinaryInput
@Nikita,首先请阅读文档,这将回答您的大多数问题
默认情况下,ActiveAdmin呈现数据库表的所有列以显示表单,但无法显示此特定列
因为没有处理二进制列的选项(请检查,雇主表中有一个二进制类型的列)
因此有两种选择
1) 重写表单声明,如此处所述
如果需要显示列,请为列使用as::string
选项
2) 也可以创建自定义输入来执行此操作,并使用可能不适合您的源添加初始值设定项
class BinaryInput < Formtastic::Inputs::StringInput
end
class BinaryInput
解决方法
这对我来说很有效:在下面创建一个文件,它将解决错误
# app/inputs/inet_input.rb
class InetInput < Formtastic::Inputs::StringInput
end
#app/inputs/inet_input.rb
类InetInput
在这种情况下,将inet
替换为BinaryInput
理由
可能的问题是,Formtastic
无法将列类型映射到HTML输入类型
该溶液用formtastic(~>3.1)测试
变通办法
这对我来说很有效:在下面创建一个文件,它将解决错误
# app/inputs/inet_input.rb
class InetInput < Formtastic::Inputs::StringInput
end
#app/inputs/inet_input.rb
类InetInput
在这种情况下,将inet
替换为BinaryInput
理由
可能的问题是,Formtastic
无法将列类型映射到HTML输入类型
该溶液用formtastic(~>3.1)测试
我在编辑
用户
资源时遇到了同样的问题,当Desive创建该资源时
t.inet“当前登录ip”
列类型
如果可以将数据类型从inet
更改为string
,只需生成迁移:
rails g migration changedatabasecolumntypeforipaddressessinusers
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
class ChangeDatabaseColumnTypeForIpAddresseSusiners
我在编辑用户
资源时遇到了同样的问题,该资源在由designe创建时
t.inet“当前登录ip”
列类型
如果可以将数据类型从inet
更改为string
,只需生成迁移:
rails g migration changedatabasecolumntypeforipaddressessinusers
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
class ChangeDatabaseColumnTypeForIpAddresseSusiners
我遇到了这个问题,不喜欢StringInput
解决方案,因为它是单行,不能处理换行。同样,您可以通过以下方法解决此问题:
# ./app/inputs/binary_input.rb
class BinaryInput < Formtastic::Inputs::TextInput
end
。/app/inputs/binary\u input.rb
类BinaryInput
如图所示,我遇到了这个问题,不喜欢
StringInput
解决方案,因为它是单行,无法处理换行。同样,您可以通过以下方法解决此问题:
# ./app/inputs/binary_input.rb
class BinaryInput < Formtastic::Inputs::TextInput
end
。/app/inputs/binary\u input.rb
类BinaryInput
如图所示也许更多的代码将有助于建议答案。像
新操作的活动管理代码。我在哪里可以找到代码?也许更多的代码将有助于建议答案。像new
操作的活动管理代码。我在哪里可以找到代码?