0

アイテムとタグの2つのモデルがあります

class Item
  include Mongoid::Document

  field :title, type: String
  has_many :tags

  validates_length_of :tags, minimum: 1
end

class Tag
  include Mongoid::Document

  field :title, type: String
  belongs_to :item
end

アイテムには少なくとも 1 つのタグが必要です。アイテムが作成されると、検証は非常にうまく機能します。

item = Item.create(title: "black hole")
item.tags << Tag.create(title: "black")
item.tags << Tag.create(title: "heavy")

puts item.valid? # => true
item.save

ただし、既存のアイテムが変更されると、検証は失敗します。

item = Item.find(item.id)

item.title = "nothing"
puts item.tags.count # => 2, it's ok
puts item.valid? # => false, it's wrong

関連ドキュメントの数を適切に検証する方法は?

4

1 に答える 1

0

attr_accessibleタイトルに追加しようとしましたか?

次のようになります。

class Item
  include Mongoid::Document

  attr_accessible :title # <-- here
  field :title, type: String
  has_many :tags

  validates_length_of :tags, minimum: 1
end
于 2013-03-30T15:07:27.730 に答える