在rails中将child添加到parent

时间:2012-11-01 09:12:01

标签: ruby-on-rails ruby-on-rails-3

我有一个用户模型,并希望在编辑父项时通过表单向父项添加子项,我使用Ancestry gem创建层次结构(之前问过类似的问题here但是可能是有点不清楚)。我已经尝试使用虚拟属性来为要添加的子属性添加一个属性,在用户模型中我已将new_child添加到attr_accessor。现在父用户已更新,我想更新子用户(添加父用户)。我在控制器中尝试了这个但得到了一个未定义的方法`update_attributes!'对于nil:NilClass错误,有关如何解决此问题的任何建议?

user_controller.rb

def update
   User.find_by_id(@new_child).update_attributes!(parent_id: @user)
   ...
end

user.rb

attr_accessible :new_child
attr_accessor :new_child

edit.html.erb

<%= form_for @user do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
  <%= f.label :new_child, "Add child (enter child id)" %>
  <%= f.text_field :new_child %>
  <%= f.submit "Update", class: "btn" %>            
<% end %>

0 个答案:

没有答案