Rails first_or_initialize with condition on initialize



我试图制作一个条件为初始化的first_or_initialize

我有什么:

def find_or_initialize_user(name)
User.where(company: company).first_or_initialize(company: company, name: name)
end

我只想在company.can_add_user设置为true的情况下制作新记录,

你知道怎么做吗?

我认为以下方法应该有效:

User.joins(:company).where('companies.can_add_user').first_or_initialize(company: company, name: name)

其中的第一部分应该大致转换为以下SQL查询

select * from users u
join companies c on u.company_id = c.id
where c.can_add_to_user = true

最新更新