FactoryGirl: почему attribute_for опускает некоторые атрибуты?

Я хочу использовать FactoryGirl.attributes_for в тестировании контроллера, как в:

<code>it "raise error creating a new PremiseGroup for this user" do
  expect {
    post :create, {:premise_group => FactoryGirl.attributes_for(:premise_group)}
  }.to raise_error(CanCan::AccessDenied)
end
</code>

... но это не работает, потому что #attributes_for не содержит атрибут: user_id. Вот разница между#create а также#attributes_for:

<code>>> FactoryGirl.create(:premise_group)
=> #<PremiseGroup id: 3, name: "PremiseGroup_4", user_id: 6, is_visible: false, is_open: false)
>> FactoryGirl.attributes_for(:premise_group)
=> {:name=>"PremiseGroup_5", :is_visible=>false, :is_open=>false}
</code>

Обратите внимание, что: user_id отсутствует в#attributes_for, Это ожидаемое поведение?

FWIW, мой файл заводов содержит определения для:premise_group и для:user:

<code>FactoryGirl.define do
  ...
  factory :premise_group do
    sequence(:name) {|n| "PremiseGroup_#{n}"}
    user
    is_visible false
    is_open false
  end
  factory :user do
    ...
  end
end
</code>

Ответы на вопрос(4)

Ваш ответ на вопрос