ぞえの技術めも

Ruby on Rails勉強中

【169日目】【1日20分のRailsチュートリアル】【第12章】Relationshipモデルのバリデーションを追加する

Ruby on Railsチュートリアル(第3版)

今日は「12.1.3 Relationshipのバリデーション」から。

12.1.3 Relationshipのバリデーション

先に進む前に、Relationshipモデルの検証を追加して完全なものにしておきましょう。

Relationshipモデルのバリデーションのテストとバリデーション自体を追加する。
followerfollowedに対してidがnilの場合はRelationshipが有効じゃないことを確認する、って感じなのかな…??

test/models/relationship_test.rb

require 'test_helper'

class RelationshipTest < ActiveSupport::TestCase

  def setup
    @relationship = Relationship.new(follower_id: 1, followed_id: 2)
  end

  test "should be valid" do
    assert @relationship.valid?
  end

  test "should require a follower_id" do
    @relationship.follower_id = nil
    assert_not @relationship.valid?
  end

  test "should require a followed_id" do
    @relationship.followed_id = nil
    assert_not @relationship.valid?
  end
end

app/models/relationship.rb

  validates :follower_id, presence: true
  validates :followed_id, presence: true

ユーザーのときと同じで (リスト6.30でfixtureの内容を削除したように)、今の時点では生成されたリレーションシップ用のfixtureファイルも空にしておきましょう (リスト12.6)。

ユーザーのときのこと覚えてないけど今は空にしておきましょう。

test/fixtures/relationships.yml

# empty

これでテストが通るようになりました。

$ bundle exec rake test
62 tests, 309 assertions, 0 failures, 0 errors, 0 skips

今日の学習時間は【12分】

次は「12.1.4 フォローしているユーザー」から。