Запутался в том, как правильно устанавливать и использовать ассоциации - PullRequest
0 голосов
/ 26 октября 2019

У меня есть следующие 3 модели:

class Post < ApplicationRecord
  belongs_to :site
  has_one :metric, dependent: :destroy
end

class Metric < ApplicationRecord
  belongs_to :post
  has_many :insight_key_phrases, dependent: :destroy
end

class InsightKeyPhrase < ApplicationRecord
  belongs_to :metric
end

И я пытаюсь создать задание cron, которое выполняется каждую минуту, захватывать все сообщения без метрик и, ну ... вычислять метрики:

class AnalysisJob < ApplicationJob

  def make_analyses(posts)
    posts.each do |p|
      begin
        metric = post.create_metric
        # I can't create the metric.insight_key_phrases here
      rescue
        metric.destroy!
    end
  end
end

Я застрял. post.create_metric создает метрику, но я не могу получить доступ к metric.insight_key_phrases:

ActiveRecord::StatementInvalid (Mysql2::Error: Unknown column 'insight_key_phrases.metric_id' in 'where clause')

И если я попытаюсь уничтожить metric, возникнет та же ошибка:

ActiveRecord::StatementInvalid (Mysql2::Error: Unknown column 'insight_key_phrases.metric_id' in 'where clause')

Очевидно, что я совершаю ошибку или что-то неправильно понимаю, я просто не знаю, что.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...