simple_form没有为json找到输入

时间:2014-04-14 13:07:05

标签: ruby-on-rails json postgresql simple-form

环境 Mac OS X. Rails 4.0.4 Ruby 2.1.1

宝石: simple_form

创建一个带有json类型字段的模型,这里是我的迁移文件:

create_table :my_model do |t|
  t.string :name
  t.json :my_field

  t.timestamps
end

现在,当我尝试创建一个新对象(新表单)时,我收到此错误

RuntimeError - No input found for json:
  simple_form (3.0.2) lib/simple_form/form_builder.rb:551:in `find_mapping'
  simple_form (3.0.2) lib/simple_form/form_builder.rb:482:in `find_input'
  simple_form (3.0.2) lib/simple_form/form_builder.rb:111:in `input'

我猜测simple_form没有很好地处理JSON类型,我真的不知道如何解决这个问题(使用simple_form的新手)。

希望你能帮忙

3 个答案:

答案 0 :(得分:7)

simple_form,本身不支持JSON类型。但事实证明,JSON是基于文本的数据格式,你可以简单地使用textarea来输出json。

<%= f.my_field, as: :text %>

这应该可以正常工作

答案 1 :(得分:1)

不要忘记逗号<%= f.input, as: :text %>

答案 2 :(得分:0)

您还可以在初始值设定项中添加以下行来定义自定义输入映射。

SimpleForm::FormBuilder.map_type :json, to: SimpleForm::Inputs::TextInput