用户属于公司,公司拥有多个用户。让我们说我的公司控制器创建方法我做:
company = @current_user.create_company(company_params)
创建公司后,我希望能够将用户设置为“user.admin = true”。这样做的最佳方式是什么?
我在公司控制器中尝试过以下操作。但是公司在组织中甚至没有任何用户回调。
class Company < ActiveRecord::Base
after_commit :set_creator_as_admin
has_many :users
private
def set_creator_as_admin
self.users.first.set_role_admin
end
end
这是使用对象服务的好时机吗?还有一种方法可以让它在没有对象服务的情况下工作吗?
答案 0 :(得分:1)
由于admin属性属于user,我们应该通过user更新它。 简单一点,我们可以这样使用:
@current_user.build_company(company_params)
@current_user.admin = true
@current_user.save!
公司&amp;使用将更新一次。