我有一个用户模型,想在编辑父级时通过表单将子级添加到父级,我正在使用 Ancestry gem 创建层次结构(以前在这里问过类似的问题,但可能有点不清楚)。我尝试使用虚拟属性来给要添加的孩子一个属性,在用户模型中我已经向 attr_accessor 添加了一个 new_child。现在父用户已更新,我想更新子用户(添加父用户)。我已经在控制器中尝试过了,但得到了一个未定义的方法“update_attributes!” 对于 nil:NilClass 错误,有什么建议可以解决这个问题吗?
用户控制器.rb
def update
User.find_by_id(@new_child).update_attributes!(parent_id: @user)
...
end
用户.rb
attr_accessible :new_child
attr_accessor :new_child
编辑.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 %>