如何仅在关系中尚不存在时添加记录

时间:2013-07-27 17:45:04

标签: ruby ruby-on-rails-3 activerecord

我有一个群组模型,我正在使用groups.members << user语法添加用户。我想对find_or_create这样做,但我不确定这是否可行。我应该使用一个独特的条款。这是什么最好的做法?

感谢。

2 个答案:

答案 0 :(得分:0)

groups.members.where(field1: 'value', field2: 'another value').first_or_create

...包含where子句中的所有必需值。

答案 1 :(得分:0)

我不知道这是否是“最佳做法”,但这很简单:

groups.members << user unless groups.members.where( :id => user.id )