销毁Active Record集合中的nil值

时间:2018-03-22 20:01:15

标签: ruby-on-rails ruby activerecord

我有一个模型,它被称为Scriptshas_many => Pages因此,Page belongs_to => Scipts

我删除了一个页面对象,现在运行Script.pages时,第一个值是nil(幸运的是它是第一个值,因为如果没有,我没有别的方法来引用它,因为它有没有ID)

我需要destroy nil值,因为它因nil而破坏我的应用但是,运行Script.pages.first.destroy会返回:

NoMethodError: undefined method `destroy' for nil:NilClass

哪个有道理。现在,我需要知道如何从我的页面集中获取这些损坏的数据。

有没有办法做到这一点?谢谢!

2 个答案:

答案 0 :(得分:0)

在这里你Array.compact

const url1 = `https://api.tokenbalance.com/token/${token}/${address}`;
const url2 = 'https://api.etherscan.io/api?module=stats&action=ethprice';

fetch(url1)
  .then(data1 => fetch(url2))
  .then(data2 => /* do stuff with data1 and data2 */)
  .catch(error => /* handle errors */);

您还可以尝试使用ActiveRecord::Relation.reload重新加载您的收藏集:

Script.pages.compact.first.destroy

答案 1 :(得分:0)

你没有任何网页。 0 == script.pages.count将返回true.first方法在空数组上返回nilassert [].first.nil?将通过。