Rails 迁移找不到结果并失败

Rails migration cannot find a result and fails

我的 rails 迁移因以下行而失败:

username = User.find(user_id)
if (!username.nil?)
    ...

我有一个 user_id 的 100,它在用户中没有匹配的用户,所以用户名返回为 nil(我认为)但是我的整个迁移崩溃了

我认为 if (!username.nil?) 可以解决这个问题...是否有另一种方法可以避免在 find() 中没有结果时崩溃?

如果 find 找不到具有您指定 ID 的记录,则会引发 ActiveRecord::NotFoundError 异常。

如果你想return nil没有这样的记录你可以这样做:

username = User.where(id: user_id).first

(注意这是一个 User 实例而不是用户名)