我有一个被废弃的Ruby on Rails代码块,它是rake文件的开头,除了访问Protein类之外,不依赖于任何东西,它可以(从项目的早期版本继承)。
task :import_merops_cleavages do
require "#{Rails.root}/config/environment"
require 'bio'
require 'merops'
require_relative '../../app/models/protein.rb'
proteases = Protein.includes(:drs).map(&:drs).where(db_name: 'MEROPS').uniq
@total = proteases.count
puts "starting import of #{@total} proteases"
@added = 1
@padded =1
每次我试图耙这个特定的任务,耙中止,我得到同样的错误信息。
NoMethodError: undefined method where for #<Array:0x00007f88a625d290> Did you mean? when
我曾试过用其他方法去掉where或重新排列,但保持逻辑不变,但一筹莫展。如果有谁知道如何解决这个问题,我将非常感激。
编辑:这是应用程序的主要可视化关系文档,但我可以解释任何可能没有意义的事情。
错误是正确的,该 where
方法在Arrays上不可用。它只能用在rails模型上。
列表中的 map
方法返回一个数组,所以我估计你的问题就出在这里......试着去掉下面的 .map
看看是否能解决这个问题。
所以我想这样的东西可能会有用。
proteases = Protein.all.where(db_name: 'MEROPS').uniq
告诉我们更多关于蛋白质是什么... 更好的是分享它的代码。