2015-06-20 72 views
0

我有一个公司的模式,即accepts_nested_attributes_for :users和我的控制器看起来像这样:如何更新嵌套模型的属性?

def create 
    @company = Company.new(company_params) 
    if @company.save 
    redirect_to root_url 
    else 
    render 'new' 
    end 
end 

private 

def company_params 
    params.require(:company).permit(:name, :company_size , users_attributes: [:id, :name]) 
end 

我希望做的是设置管理员布尔我在用户为true。

基本上,我正在做的是通过创建一个公司来注册用户,并注册他们的用户,从而使注册公司的人成为管理员。

+0

你可以做一些像公司[:用户] [:管理员] – user1801879

回答

0

您可以在保存之前简单地修改用户对象。

def create 
    @company = Company.new(company_params) 
    @company.user.admin = true 
    if @company.save 
    redirect_to root_url 
    else 
    render 'new' 
    end 
end 

你也可以做一个模型回调。然而你的实现可能有点天真。如果用户属于几家公司,会发生什么?