2011-05-22 27 views
0

我有一個相當簡單的使用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 

觀點是

 
<%= 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 %> 

當我提交我的形式,參數

 
{"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"} 

它返回一個不能轉換符號整數錯誤。 不幸的是,它並沒有告訴我它試圖轉換什麼。

+0

顯示您的視圖plz – apneadiving 2011-05-22 23:08:35

+0

我添加了視圖,我假設你的意思是表單的視圖,因爲錯誤來自「創建」。 – pedalpete 2011-05-23 04:48:38

回答

1

替換:

<%= f.semantic_fields_for :merge_split do |ms| %> 

有了:

<%= f.semantic_fields_for :merge_splits do |ms| %> 

僅供參考,我相信在這裏的錯誤撒謊,因爲你則params的結構:

"merge_splits_attributes"=>{"action"=>"0", "character"=>"ti", "count"=>"0"} 

has_many關係,嵌套屬性是這樣的:

"merge_splits_attributes"=>{"0" => {"action"=>"0", "character"=>"ti", "count"=>"0" }, "1" => {"action"=>"0", "character"=>"ti", "count"=>"0" } } 

編輯

在你的控制,我猜你:

@field_map = FieldMap.new 

同樣的邏輯,你應該有以下有merge_split創建:

@field_map = FieldMap.new 
@field_map.merge_splits.build 

而且刪除:name

+0

應該是正確的,但是當我將merge_split替換爲merge_splits時,merge_splits的字段根本不顯示。 由於某些原因,如果多個semantic_fields_for與模型中的多個關係相匹配,則不顯示這些表單。 我不確定這是爲什麼,但這是我指定:name的原因。 有什麼建議嗎? – pedalpete 2011-05-23 16:49:55

+0

是否有任何merge_splits關聯?我的意思是,當你創建你的對象時,你應該建立它的關係,否則它們不會出現。 – apneadiving 2011-05-23 17:01:09

+0

對不起,但現在我真的迷路了。你的意思是我是否在模型中創建了關聯?如果是這樣,是的。 – pedalpete 2011-05-23 23:33:04

相關問題