我有一个用户模型,并希望在编辑父项时通过表单向父项添加子项,我使用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 %>