Это было результатом того, что я не понимал REST-архитектуру Rails или пост-синтаксис. Я должен был использовать PUT вместо POST, и вызов должен был выглядеть так:
context "on PUT to :update" do
setup do
put :update, {
:project_id => @project1.to_param,
:id => @post1.to_param,
:post => { :title => 'new title', :text => 'other text' }
}
end
should_assign_to :post
should_assign_to :project
should_respond_with :success
should "update post values" do
assert_equal 'new title', assigns['post'].title
assert_equal 'other text', assigns['post'].text
end
end
Я использовал неправильный синтаксис, потому что по какой-то причине он все еще правильно обрабатывал мои вложенные идентификаторы.