Ruby on rails formtastic can';t将符号转换为整数
Ruby on rails formtastic can';t将符号转换为整数,ruby-on-rails,nested-forms,formtastic,Ruby On Rails,Nested Forms,Formtastic,我使用formtastic得到了一个相当简单的嵌套表单
我的模特是
class FieldMap < ActiveRecord::Base
has_many :merge_splits
accepts_nested_attributes_for :merge_splits
class MergeSplit < ActiveRecord::Base
belongs_to :field_map
end
类字段映射
@操作,:required=>false,:inp
我使用formtastic得到了一个相当简单的嵌套表单
我的模特是
class FieldMap < ActiveRecord::Base
has_many :merge_splits
accepts_nested_attributes_for :merge_splits
class MergeSplit < ActiveRecord::Base
belongs_to :field_map
end
类字段映射
<%= semantic_form_for @field_map do |f| %>
<%= f.input :base_field, :collection => @base_fields %>
<%= f.input :master_field, :collection =>@master_fields %>
<%= f.semantic_fields_for :merge_split do |ms| %>
<%= ms.input :action, :collection => @actions, :required=> false, :input_html=>{:class=>'split_merge_type', :name=>"field_map[merge_splits_attributes][action]"} %>
<%= ms.input :character, :required=> false, :input_html=>{:class=>'split_merge_char', :name=>"field_map[merge_splits_attributes][character]"} %>
<%= ms.input :count, :collection => [0,1], :include_blank=>false, :required=> false, :input_html=>{:class=>'split_merge_count', :name=>"field_map[merge_splits_attributes][count]"} %>
<% end %>
<%= f.submit %>
<% end %>
@基本字段%>
@主字段%>
@操作,:required=>false,:input\u html=>{:class=>'split\u merge\u type',:name=>“字段映射[merge\u splits\u attributes][action]”}%>
false,:input_html=>{:class=>'split_merge_char',:name=>“字段映射[merge_splits_attributes][character]”}%>
[0,1],:include_blank=>false,:required=>false,:input_html=>
当我提交表格时,参数是
{"utf8"=>"?",
"authenticity_token"=>"lNinAw4DpjkIHsuUEaa0xo+sRG+qk3elA4T2VfCWgXc=",
"field_map"=>{"base_field_id"=>"18",
"master_field_id"=>"11",
"merge_splits_attributes"=>{"action"=>"0",
"character"=>"ti",
"count"=>"0"},
"attribute_map_attributes"=>{"attribute_id"=>""}},
"commit"=>"Create Field map"}
{“utf8”=>“?”,
“真实性令牌”=>“lNinAw4DpjkIHsuUEaa0xo+sRG+qk3elA4T2VfCWgXc=”,
“字段映射”=>{“基本字段id”=>“18”,
“主字段\u id”=>“11”,
“合并分割属性”=>{“操作”=>“0”,
“字符”=>“ti”,
“计数”=>“0”},
“属性映射属性”=>{“属性id”=>“”},
“提交”=>“创建字段映射”}
返回一个无法将符号转换为整数的错误。
不幸的是,它没有告诉我它试图转换什么 替换:
<%= f.semantic_fields_for :merge_split do |ms| %>
在具有多个关系中,嵌套属性如下所示:
"merge_splits_attributes"=>{"0" => {"action"=>"0", "character"=>"ti", "count"=>"0" }, "1" => {"action"=>"0", "character"=>"ti", "count"=>"0" } }
编辑
在您的控制器中,我想您会:
@field_map = FieldMap.new
同样的逻辑,您应该具备以下条件才能创建合并\分割:
@field_map = FieldMap.new
@field_map.merge_splits.build
并删除:name
我添加了视图,我假设您指的是表单的视图,因为错误来自“create”。这应该是正确的,但当我将:merge\u split替换为:merge\u splits时,merge\u splits的字段根本不显示。出于某种原因,如果多个语义_字段_与模型中的多个关系匹配,则表单不会显示。我不确定这是为什么,但这就是我指定:名称的原因。有什么建议吗?有没有相关的合并分割?我的意思是,当你创建你的对象时,你也应该建立它的关系,否则它们不会出现。对不起,但现在我真的迷路了。你是说我在模型中创建了关联吗?如果是,是的。
@field_map = FieldMap.new
@field_map = FieldMap.new
@field_map.merge_splits.build