私のジョブモデルには以下のスコープがあります。私のステートメントにSQLの不一致があるようです。私たちのdevdbはmysqlで、明らかにherokuにはpostgresがあり、それは何らかの理由でfile_countとして不平を言っています。postgres-mysqlの問題へのActiverecordの解決
これらのスコープをクラスメソッドに変換するか、少なくともSQLステートメントをアクティブなレコードに変更して、dbに依存しないようにする予定です。これはまったく可能なのですか?これをどうすれば始めることができますか?
私はis_activeを単純なスコープステートメントとして動作すると確信しているので、私はこれを保つつもりですが、with_unclassified_files_available_countにはリファクタリングが必要であり、ARリファクタが良いアイデアになると思います。
scope :is_active, where(:active => true)
scope :with_unclassified_files_available_count, where("audio_files.category_id IS NULL")
.joins(AUDIO_FILES)
.select("jobs.*, COUNT(*) AS file_count")
.group("jobs.id")
.order("batch_identifier DESC")
scope :has_files_available, with_unclassified_files_available_count.having("count(*) > 0")
scope :available_to_work_on, is_active.has_files_available
追加情報::、)私は提案を開いているので、
を教えてくださいここでは、コードをお勧めします
仕事は、多くのaudio_filesを持っており、オーディオファイルは、ジョブに属します。