Должно работать следующее:
describe "PUT create" do
before(:each) do
@thing = Factory(:thing)
attrs = FactoryGirl.attributes_for(:description, :thing_id => @thing)
post :create, :thing_id => @thing, :description => attrs
end
end
Чтобы создать вложенный ресурс, необходимо указать rspec идентификатор родительского объекта в записи create, чтобы он мог вставить его в маршрут.
Вам также необходимо создать фабрику :descriptions
с отношением к встроенному :thing
, а также передать thing_id
в создание атрибута :description
, чтобы убедиться, что Factory Girl нене создавайте новый :thing
, когда он создает атрибуты для :description
, в то время как это не приведет к сбою теста, это замедлит его, поскольку вы в итоге создадите два экземпляра :thing
.