0

モデル:

class Coaster < ActiveRecord::Base

  extend FriendlyId
  friendly_id :slug, use: :slugged

  belongs_to :park
  belongs_to :manufacturer

  attr_accessible :name,
                  :height,
                  :speed,
                  :length,
                  :inversions,
                  :material,
                  :lat,
                  :lng,
                  :park_id,
                  :notes,
                  :manufacturer_id,
                  :style,
                  :covering,
                  :ride_style,
                  :model,
                  :layout,
                  :dates_ridden,
                  :times_ridden,
                  :order,
                  :on_ride_photo

テスト:

it { should validate_presence_of(:on_ride_photo) }
it { should ensure_inclusion_of(:on_ride_photo).in_array([true, false]) }
it { should_not allow_value(4).for(:on_ride_photo) }
it { should_not allow_value('lots').for(:on_ride_photo) }

工場:

FactoryGirl.define do

  factory :coaster do
    association :park
    name 'Nemesis'
    speed 60
    height 60
    length 160
    inversions 4
    on_ride_photo true
  end

end

エラー:

 Failure/Error: subject { FactoryGirl.build(:coaster) }
 NoMethodError:
   undefined method `on_ride_photo=' for #<Coaster:0x007fe9a0aec798>

何かご意見は。on_ride_photo のセッターが表示されていないようですが、コンソールで使用し、それを使用して取得および設定しました。

4

1 に答える 1

1

最近これを追加しましたか?その場合、テスト データベースを更新する必要がある場合があります。

rake db:test:load
于 2013-08-09T20:54:01.520 に答える