如果找不到记录,请选择可选命令

时间:2015-01-15 15:57:54

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

在rails中,我试图实现类似的目标:

@user = User.find(params[:id]) || current_user

即:如果User.find(params[:id])找不到现有记录,我希望@user存储current_user

我认为这可能是一件简单的事情。但我刚开始用铁轨上的红宝石。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

ptd是对的 - 抛出一个异常是Rails的意图,因为它是传递id的等效SQL where子句 - 并且由于这个Rails预期存在这样的id的记录。但是,我认为你可以使用这样的代码,而不是rescue - (我相信它更像是pythonic方式):

@user = User.find_by_id(params[:id]) || current_user