ハッシュ属性

Rubyのブロック構文があるため、(例えば直列化された列やJSONの列用に)属性をHashとして定義するには、2対の波括弧が必要です。

factory :program do
  configuration { { auto_resolve: false, auto_define: true } }
end

代えてお好みでdoendの構文にすることもできます。

factory :program do
  configuration do
    { auto_resolve: false, auto_define: true }
  end
end

しかし値をハッシュとして定義するとオブジェクトを構築するときにハッシュ内に値を設定するのが複雑になります。 その代わりにfactory_bot自体を使うようにしてください。

factory :program do
  configuration { attributes_for(:configuration) }
end

factory :configuration do
  auto_resolve { false }
  auto_define { true }
end

この方法ではより簡単に構築の際に値を設定できます。

create(
  :program,
  configuration: attributes_for(
    :configuration,
    auto_resolve: true,
  )
)