如何更新嵌套模型的属性?

时间:2015-06-20 20:38:29

标签: ruby-on-rails

我有一个公司模型,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

我想要做的是将user中的admin布尔值设置为true。

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

1 个答案:

答案 0 :(得分:0)

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

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

您也可以将其作为模型回调。但是你的实现可能有点天真。如果用户属于多家公司会怎样?