在活动记录中有一个方便的动态属性,称为 find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
但是如果我需要通过多个属性来查找或创建呢?
假设我有一个模型来处理 Group 和 Member 之间的 M:M 关系,称为 GroupMember。我可以有很多 member_id = 4 的实例,但我不想多次遇到 member_id = 4 和 group_id = 7 的实例。我试图弄清楚是否可以做这样的事情:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
我意识到可能有更好的方法来处理这个问题,但我喜欢 find_or_create 想法的便利性。