2015-11-16 91 views
0

用戶屬於公司和公司has_many用戶。在我公司控制器比方說,創建方法,我做的:關聯創建事件

company = @current_user.create_company(company_params) 

一旦一家公司被創造了,我希望能夠設置用戶「user.admin =真」。做這個的最好方式是什麼?

我在我的公司控制器中試過以下內容。但公司在org中甚至沒有任何用戶,甚至是after_commit回調。

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 

這是使用對象服務的好時機嗎?還有沒有一種方法可以讓這個工作沒有對象服務?

回答

1

由於admin屬性屬於用戶,我們應該通過用戶來更新它。 讓它簡單,我們可以用這樣的:

@current_user.build_company(company_params) 
@current_user.admin = true 
@current_user.save! 

公司&使用會更新一次。