节点预期,得到String

我正在尝试构建一个树结构,所以我创建了一个带有自连接关联的Node模型:

class Node  "Node", :foreign_key => "parent_id" belongs_to :parent, :class_name => "Node" 

这是架构:

 create_table "nodes", :force => true do |t| t.integer "key" t.decimal "value", :precision => 8, :scale => 2 t.decimal "prob", :precision => 8, :scale => 2 t.integer "parent_id" t.datetime "created_at" t.datetime "updated_at" end 

当我运行测试或通过控制台创建节点时,一切似乎都运行正常。 但是,当我运行应用程序并通过/ nodes / new上的表单创建一个新节点时,我收到以下错误:

 ActiveRecord::AssociationTypeMismatch in NodesController#create Node(#2162787060) expected, got String(#2151988680) 

什么似乎是问题?

编辑:添加表单并create

   

prohibited this node from being saved:





创建:

 def create @node = Node.new(params[:node]) respond_to do |format| if @node.save format.html { redirect_to(@node, :notice => 'Node was successfully created.') } format.xml { render :xml => @node, :status => :created, :location => @node } else format.html { render :action => "new" } format.xml { render :xml => @node.errors, :status => :unprocessable_entity } end end end