If statement 有人对这些嵌套的If语句有更好的解决方案吗?

If statement 有人对这些嵌套的If语句有更好的解决方案吗?,if-statement,dry,If Statement,Dry,此方法的目的是标记用户在活动中的出席情况。您可以这样理解:如果今天有一个事件正在进行,如果用户存在,如果他的状态是已订阅或已确认,并且如果该现有用户尚未签入,则将该用户添加到事件的用户数组中 对于更优雅的解决方案有什么建议吗 def mark_考勤(用户) 如果是当前\u事件(当前\u商户) 如果用户 如果user.status==“已订阅”| user.status==“已确认” 如果当前事件(当前商户).users.where(id:user.id)=[] 当前事件(当前商户)。用户我可能会

此方法的目的是标记用户在活动中的出席情况。您可以这样理解:如果今天有一个事件正在进行,如果用户存在,如果他的状态是已订阅或已确认,并且如果该现有用户尚未签入,则将该用户添加到事件的用户数组中

对于更优雅的解决方案有什么建议吗

def mark_考勤(用户)
如果是当前\u事件(当前\u商户)
如果用户
如果user.status==“已订阅”| user.status==“已确认”
如果当前事件(当前商户).users.where(id:user.id)=[]

当前事件(当前商户)。用户我可能会这样写:

def mark_考勤(用户)
事件=当前事件(当前商户)
出席人数=[“已订阅”、“已确认”]
event.users我的方法是:

def mark_考勤(用户)
如果!用户
返回
结束
当前商户事件=当前商户事件(当前商户)
如果!当前\u商户\u事件
返回
结束
if(user.status!=“已订阅”&&user.status!=“已确认”)
返回
结束
如果当前_merchant_event.users.where(id:user.id)=[]

当前\u merchant\u event.users这可能应该发布在@EliranMalka上,我不知道codereview。我想它还是新的,因为它还在测试阶段。我上面的问题不是关于解决这个特殊问题,而是关于如何重构嵌套的if语句,因为我经常遇到它们。谢谢你的建议!