Как я могу использовать проверки между двумя таблицами? Ruby на рельсах - PullRequest
0 голосов
/ 31 марта 2020

У меня есть таблица items и таблица proms. items имеет столбец prom, а prom имеет столбец promname, я хочу, чтобы в моей модели item было проверено, существует ли `Prom.exists? (: Promanme =>: prom), а затем создайте, если я не буду ' этот выпускной еще не сохранен

class Item < ApplicationRecord
  validates :prom_exist?
def prom_exist?
      if Prom.exists?(:promane => :prom)
      else
  end
end

1 Ответ

1 голос
/ 31 марта 2020

Вы должны быть в состоянии сделать следующее:

class Item < ApplicationRecord
  validate :prom_exists

  def prom_exists
    errors.add(:prom, 'does not exist') if prom && !Prom.exists?(promnane: prom)
  end
end

Хотя я бы порекомендовал установить ограничение внешнего ключа и использовать промо * id вместо его имени, а Item будет просто иметь prom_id и item.prom получат запись Prom. Тогда это просто так:

class Item < ApplicationRecord
  belongs_to :prom
end
...