0

1 つの属性が他の属性に依存するファクトリを構築するにはどうすればよいでしょうか?

  factory :event do
    sequence(:title) { |n| "Event #{n}" }
    sequence(:description) { |n| "More detailed info about event #{n}" }
    start_at { rand(1..100).days.from_now }
    end_at { start_at + rand(1..5).hours }   # <=== referencing start_at
  end

これを使用するNameError: uninitialized constant Eventと私の仕様が得end_atられ、の値に依存する値に設定しようとしたことが原因だと思いますstart_at。これを行う方法?数十の有効な「イベント」をインスタンス化しようとしています。ありがとう。

4

2 に答える 2

0

ファクトリ ブロック内に問題があるため、エラーは発生しません。Event クラスが正しく定義されていません。

あなたのイベントモデルを見せていただけますか?

おそらくモジュールにネストされていますか?次に、これを行うことができます:

factory :event, :class => 'ModuleName::Event' do
  ...
end
于 2012-08-23T20:54:38.767 に答える
0

あなたがやりたいことは次のようなものだと思います:

factory :event do
  title 'foo'
  description "bar"
  other_attributes "baz"

  factory :dynamic_event do
    sequence(:title) { |n| "Event #{n}" }
  end

end

ファクトリはイベント ファクトリからすべての:dynamic_event属性を継承しますが、そのブロック内で指定された属性をオーバーライドします。(titleこの例ではシーケンス内)

于 2012-08-23T21:13:59.040 に答える