0

私のホルダーテストファイル:

 test "name must be present" do
  holder = Holder.new(name: "name")
  assert holder.valid?
 end

 test "name must not be blank" do
  h = Holder.new(name: "    ")
  assert !h.valid?
 end

 test "name must not be nil" do
  h = Holder.new(name: nil)
  assert !h.valid?
 end

そして私のホルダーモデルは次のようになります:

class Holder < ActiveRecord::Base
  attr_accessible :description, :name, :user_id

  validates_length_of :name, maximum: 75
  validates_length_of :description, maximum: 250

  validate :name, presence: true
end

しかし、テストを実行すると、最後の2つの検証はまだ赤です。それらを緑色に変えるためにそれらをテストするために何をする必要がありますか?

4

1 に答える 1

3

あなたはあなたのを忘れsましたvalidate。それは次のようにする必要があります:

validates :name, presence: true

validatevalidatesは完全に異なる方法です。

http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.htmlを参照してください。

于 2012-06-18T12:23:30.320 に答える