1

我有一个用户模型,想在编辑父级时通过表单将子级添加到父级,我正在使用 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 %>
4

0 回答 0