Frage

Ich möchte einige Modellebene Validierung auf der folgenden Tabelle setzen:

create_table :audios do |t|
  t.integer :library_id, :null => false
  t.string :file, :null => false, :limit => 2048
  t.string :name, :limit => 512
  t.timestamps
end

Heißt das, dass mein Modell, das (bisher) sieht aus wie:

class Audio < ActiveRecord::Base
  belongs_to :library
end

Hat

class Audio < ActiveRecord::Base
  validates_presence_of :library
  ...

oder

class Audio < ActiveRecord::Base
  validates_presence_of :library_id
  ...

War es hilfreich?

Lösung

Um die Anwesenheit eines Vereins zu validieren, verwenden Sie den Namen, ohne _id angefügt:

validates_presence_of :library

Es wird zwei Dinge bestätigen:

  1. library_id vorhanden ist
  2. a Library mit dem angegebenen id existiert

validates_presence_of :library_id Verwendung wird Ihnen nur die erste Validierung der beiden.

Zusätzlich dazu wird die Version ohne _id auch korrekt validieren, wenn beide Datensätze neu sind (und daher library_id ist noch nicht gesetzt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top