質問

次の表にモデル レベルの検証を加えたいと思います。

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

これは、私のモデルが(これまでのところ)次のようになっているという意味ですか?

class Audio < ActiveRecord::Base
  belongs_to :library
end

もっている

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

または

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

?

役に立ちましたか?

解決

関連付けの存在を検証するには、その名前を使用します。 それなし _id 添付:

validates_presence_of :library

次の 2 つのことが検証されます。

  1. library_id 存在します
  2. ある Library 与えられたものと一緒に id 存在します

使用する validates_presence_of :library_id 2 つのうちの最初の検証のみが提供されます。

これに加えて、なしのバージョン _id 両方のレコードが新しいかどうかも正しく検証されます (したがって、 library_id まだ未設定です)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top