3

次の表にモデル レベルの検証を行います。

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
  ...

?

4

1 に答える 1

5

アソシエーションの存在を検証するには、その名前を追加せずに使用します。 _id

validates_presence_of :library

次の 2 つのことを検証します。

  1. library_id存在する
  2. Library与えられた存在idする

を使用validates_presence_of :library_idすると、2 つの最初の検証のみが行われます。

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

于 2010-02-09T22:47:37.900 に答える