我有一个rails应用程序,我在两个数据库之间链接字段。数据库的东西似乎都很好。
但是,我有一个表单,我将描述从远程数据库映射到本地数据库中的产品。
用于创建产品的表单并选择说明正常
#_form.rb semantic_form_for @products do |f| f.input :name semantic_fields_for :description_maps do |description| description.input :desciption_map_id, :input_html=>{:name=>"product[description_map][description_id]}, :collection => @descriptions end end #product.rb class Product < ActiveRecord::Base attr_accessible :name, :description_map_attributes, :description_map has_one :description_map accepts_nested_attributes_for :description_map
当我提交表单时,我收到错误
DescriptionMap(#...) expected, got ActiveSupport::HashWithIndifferentAccess(#othernumber)
我似乎无法弄清楚为什么会这样。
发布的参数看起来很好
"product"=>{"name"=>"test name", "description_map"=>{"description_id"=>"1"}}
答案 0 :(得分:1)
结果证明这是formtastic如何命名描述图的问题。 在这个问题中,我指定了
description.input :desciption_map_id, :input_html=>{:name=>"product[description_map][description_id]}, :collection => @descriptions
但'description_map'必须是'description_map_attributes',就像这样
description.input :desciption_map_id, :input_html=>{:name=>"product[description_map_attributes][description_id]}, :collection => @descriptions
希望这个答案有助于其他人遇到同样的问题。
答案 1 :(得分:0)
你应该使用:: description_map(没有“S”)因为是一个has_on关系
semantic_fields_for :description_map do |description|
description.input :desciption_map_id, :input_html=>{:name=>"product[description_map] [description_id]}, :collection => @descriptions
端