如何在 rails 中更改 Ruby 中的模型所有者?

How to change model owner in Ruby in rails?

我在 rails 和 mongoid 上使用 Ruby。 我有两个模型 User.rb 和 Project.rb。如果我想更改项目模型的所有者,我应该怎么做?

User.rb

class User
  include Mongoid::Document

  field :name, type: String
  has_many :projects, dependent: :destroy
end

Project.rb

class Project
  include Mongoid::Document

  field :title, type: String

  validates :user_id, presence: true

  belongs_to :user, touch: true
end

在 form.html.erb 我有 select 模式

  <div class="form-group">
    <%= f.collection_select :user_id, User.all, :id, :name, class: 'form-control' %>
  </div>

您应该可以将其分配给用户字段,然后将其保存以将其持久保存到数据库中

project = Project.find(project_id)
new_owner = User.find(new_owner_id)
project.user = new_owner
project.save

我很久以前没有使用 mongoid,但你可以在 rails console:

上尝试 运行 这些命令
project.user = owner_object;
project.save

project.user_id = owner_id
project.save